News All Tests
Current file: /home/estudydev/workspace/MSP09/web/news/tests/class.document.inc.php
Legend: executed not executed dead code

  Coverage
  Classes Methods Lines
Total
100.00 %100.00%
100.00% 1 / 1
0.00 %0.00%
0.00% 0 / 60
1.36 %1.36%
1.36% 13 / 957
 
Document
100.00 %100.00%
100.00% 1 / 1
0.00 %0.00%
0.00% 0 / 60
0.11 %0.11%
0.11% 1 / 945
 public function Document($ID, $phaseID = 0)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 50
 public function setDefaultValues($phaseID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 39
 public function showEditForm($isLeader, $isEditor, $isReviewer, $isResponsible)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 188
 public function showDetails()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 50
 public function setData($data, $isLeader, $isEditor, $isReviewer)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 95
 public function createDocument()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 7
 public function deleteDocument()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 8
 public function validateName($name)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 10
 public function validateDeadline($deadline)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 7
 public function validateDocumentType($typeID, $newTypeName = '')
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 15
 public function validateTemplateID($fileID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 8
 public function validateFolderID($folderID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 10
 public function validateUserID($userID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 4
 public function validateEditorUserID($userID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 3
 public function validateReviewerUserID($userID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 3
 public function validateReviewer($reviewerID, $editorID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 3
 public function validateReviseUntilDate($ts)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 5
 public function validateEstimatedEffort(&$days)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 6
 public function validateDaysSpent(&$days)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 6
 public function validateETC(&$days)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 6
 public function setName($name)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 14
 public function setDeadline($deadline)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 9
 public function setDescription($desc)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 18
 public function setDocumentType($typeID, $newTypeName = '')
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 27
 public function setTemplateID($ID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 14
 public function setFolderID($ID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 14
 public function setEditorUserID($ID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 21
 public function setReviewerUserID($ID)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 21
 public function setAccepted($ts, $comment)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 24
 public function setReviseUntil($ts, $until, $comment)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 23
 public function setChangeRequest($ts, $comment)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 22
 public function setEstimatedEffort($days)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 16
 public function setDaysSpent($days)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 16
 public function setETC($days)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 16
 public function setInProgress($ts, $comment)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 22
 public function setReadyForApproval($ts, $comment)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 22
 public function setFeedbackRequest($ts, $comment)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 22
 public function setFile()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 24
 public function getID()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 1
 public function getName()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 1
 public function getDescription($bbcode = true)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 4
 public function getChangeRequestComment($bbcode = true)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 4
 public function getAcceptedComment($bbcode = true)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 4
 public function getReviseComment($bbcode = true)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 4
 public function getInProgressComment($bbcode = true)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 4
 public function getReadyForApprovalComment($bbcode = true)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 4
 public function getFeedbackRequestComment($bbcode = true)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 4
 public function getEditor()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 7
 public function getFileID()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 1
 public function getReviewer()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 7
 public function getReviewerUserID()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 1
 public function getEditorUserID()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 1
 public function getTypeName()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 3
 public function getTemplateName()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 3
 public function getStatusText()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 16
 public function getEstimatedEffort()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 1
 public function getDaysSpent()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 1
 public function getETC()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 1
 public function isFinished()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 1
 public function getLinkToFile()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 3


       1                 : <?php                                                                                                                                                                                                                                                                                                                                                         
       2                 : /*--------------------------------------------------------------------------+                                                                                                                                                                                                                                                                                 
       3                 : This file is part of eStudy.                                                                                                                                                                                                                                                                                                                                  
       4                 : planspiel/classes/class.phase.inc.php                                                                                                                                                                                                                                                                                                                         
       5                 : - Modulgruppe:  Planspiel                                                                                                                                                                                                                                                                                                                                     
       6                 : - Beschreibung: Erstellen eines Phasen-Objektes mit entsprechenden Funktionen.                                                                                                                                                                                                                                                                                
       7                 : - Version:      0.8, 13/01/07                                                                                                                                                                                                                                                                                                                                 
       8                 : - Autor(en):    Clemens Weiß <clemens.weiss@mni.fh-giessen.de>                                                                                                                                                                                                                                                                                               
       9                 : +---------------------------------------------------------------------------+                                                                                                                                                                                                                                                                                 
      10                 : This program is free software; you can redistribute it and/or                                                                                                                                                                                                                                                                                                 
      11                 : modify it under the terms of the GNU General Public License                                                                                                                                                                                                                                                                                                   
      12                 : as published by the Free Software Foundation; either version 2                                                                                                                                                                                                                                                                                                
      13                 : of the License, or any later version.                                                                                                                                                                                                                                                                                                                         
      14                 : +---------------------------------------------------------------------------+                                                                                                                                                                                                                                                                                 
      15                 : This program is distributed in the hope that it will be useful,                                                                                                                                                                                                                                                                                               
      16                 : but WITHOUT ANY WARRANTY; without even the implied warranty of                                                                                                                                                                                                                                                                                                
      17                 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                                                                                                                                                                                                                                                                                 
      18                 : GNU General Public License for more details.                                                                                                                                                                                                                                                                                                                  
      19                 : You should have received a copy of the GNU General Public License                                                                                                                                                                                                                                                                                             
      20                 : along with this program; if not, write to the Free Software                                                                                                                                                                                                                                                                                                   
      21                 : Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.                                                                                                                                                                                                                                                                                   
      22                 : +--------------------------------------------------------------------------*/                                                                                                                                                                                                                                                                                 
      23                 : /**                                                                                                                                                                                                                                                                                                                                                           
      24                 :  * Erstellen eines Phasen-Objektes mit entsprechenden Funktionen.                                                                                                                                                                                                                                                                                             
      25                 :  * @package eStudy.Planspiel                                                                                                                                                                                                                                                                                                                                  
      26                 :  * @version 0.8, 13/01/07                                                                                                                                                                                                                                                                                                                                     
      27                 :  * @author Clemens Weiß <clemens.weiss@mni.fh-giessen.de>                                                                                                                                                                                                                                                                                                    
      28                 :  */                                                                                                                                                                                                                                                                                                                                                           
      29               1 : require_once ("class.bbcode.inc.php");                                                                                                                                                                                                                                                                                                                        
      30               1 : require_once ("class.formular.inc.php");                                                                                                                                                                                                                                                                                                                      
      31               1 : require_once ("class.userrolemanagement.inc.php");                                                                                                                                                                                                                                                                                                            
      32               1 : require_once ("class.userteammanagement.inc.php");                                                                                                                                                                                                                                                                                                            
      33               1 : require_once ("class.teamlist.inc.php");                                                                                                                                                                                                                                                                                                                      
      34               1 : require_once ("class.team.inc.php");                                                                                                                                                                                                                                                                                                                          
      35               1 : require_once ("class.insert.inc.php");                                                                                                                                                                                                                                                                                                                        
      36               1 : require_once ("class.filemanger.inc.php");                                                                                                                                                                                                                                                                                                                    
      37               1 : require_once ("class.dateselection.inc.php");                                                                                                                                                                                                                                                                                                                 
      38               1 : require_once ("class.phase.inc.php");                                                                                                                                                                                                                                                                                                                         
      39               1 : require_once ("class.PlanspielBudget.inc.php");                                                                                                                                                                                                                                                                                                               
      40               1 : require_once ("class.BudgetIndicators.inc.php");                                                                                                                                                                                                                                                                                                              
      41                 :                                                                                                                                                                                                                                                                                                                                                               
      42               1 : class Document {                                                                                                                                                                                                                                                                                                                                              
      43                 :     /**                                                                                                                                                                                                                                                                                                                                                       
      44                 :      * ID des Dokuments                                                                                                                                                                                                                                                                                                                                       
      45                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
      46                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
      47                 :      */                                                                                                                                                                                                                                                                                                                                                       
      48                 :     var $ID;                                                                                                                                                                                                                                                                                                                                                  
      49                 :     /**                                                                                                                                                                                                                                                                                                                                                       
      50                 :      * ID der Phase, zu der das Dokument gehört                                                                                                                                                                                                                                                                                                              
      51                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
      52                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
      53                 :      */                                                                                                                                                                                                                                                                                                                                                       
      54                 :     var $phaseID;                                                                                                                                                                                                                                                                                                                                             
      55                 :     /**                                                                                                                                                                                                                                                                                                                                                       
      56                 :      * ID des Planspiels, zu dem das Dokument gehört                                                                                                                                                                                                                                                                                                         
      57                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
      58                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
      59                 :      */                                                                                                                                                                                                                                                                                                                                                       
      60                 :     var $planspielID;                                                                                                                                                                                                                                                                                                                                         
      61                 :     /**                                                                                                                                                                                                                                                                                                                                                       
      62                 :      * Name des Dokuments                                                                                                                                                                                                                                                                                                                                     
      63                 :      * @var string                                                                                                                                                                                                                                                                                                                                            
      64                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
      65                 :      */                                                                                                                                                                                                                                                                                                                                                       
      66                 :     var $name;                                                                                                                                                                                                                                                                                                                                                
      67                 :     /**                                                                                                                                                                                                                                                                                                                                                       
      68                 :      * Beschreibung des Dokuments                                                                                                                                                                                                                                                                                                                             
      69                 :      * @var string                                                                                                                                                                                                                                                                                                                                            
      70                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
      71                 :      */                                                                                                                                                                                                                                                                                                                                                       
      72                 :     var $description;                                                                                                                                                                                                                                                                                                                                         
      73                 :     /**                                                                                                                                                                                                                                                                                                                                                       
      74                 :      * Typ des Dokuments (ID aus der Tabelle planspiel_doc_type)                                                                                                                                                                                                                                                                                              
      75                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
      76                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
      77                 :      */                                                                                                                                                                                                                                                                                                                                                       
      78                 :     var $type;                                                                                                                                                                                                                                                                                                                                                
      79                 :     /**                                                                                                                                                                                                                                                                                                                                                       
      80                 :      * Datei-ID der Vorlage für dieses Dokument aus dem Ressourcen-Manager                                                                                                                                                                                                                                                                                   
      81                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
      82                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
      83                 :      */                                                                                                                                                                                                                                                                                                                                                       
      84                 :     var $templateID;                                                                                                                                                                                                                                                                                                                                          
      85                 :     /**                                                                                                                                                                                                                                                                                                                                                       
      86                 :      * ID des Verzeichnisses, in dem das Dokument gespeichert werden soll                                                                                                                                                                                                                                                                                     
      87                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
      88                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
      89                 :      */                                                                                                                                                                                                                                                                                                                                                       
      90                 :     var $folderID;                                                                                                                                                                                                                                                                                                                                            
      91                 :     /**                                                                                                                                                                                                                                                                                                                                                       
      92                 :      * ID der Datei, die zu diesem Dokument gehört bzw. es darstellt                                                                                                                                                                                                                                                                                         
      93                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
      94                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
      95                 :      */                                                                                                                                                                                                                                                                                                                                                       
      96                 :     var $fileID;                                                                                                                                                                                                                                                                                                                                              
      97                 :     /**                                                                                                                                                                                                                                                                                                                                                       
      98                 :      * User-ID des Bearbeiters dieses Dokuments                                                                                                                                                                                                                                                                                                               
      99                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     100                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     101                 :      */                                                                                                                                                                                                                                                                                                                                                       
     102                 :     var $editorUserID;                                                                                                                                                                                                                                                                                                                                        
     103                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     104                 :      * User-ID des Reviewers dieses Dokuments                                                                                                                                                                                                                                                                                                                 
     105                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     106                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     107                 :      */                                                                                                                                                                                                                                                                                                                                                       
     108                 :     var $reviewerUserID;                                                                                                                                                                                                                                                                                                                                      
     109                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     110                 :      * Timestamp, seit dem das Dokument in Bearbeitung ist                                                                                                                                                                                                                                                                                                    
     111                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     112                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     113                 :      */                                                                                                                                                                                                                                                                                                                                                       
     114                 :     var $inProgressSince;                                                                                                                                                                                                                                                                                                                                     
     115                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     116                 :      * Kommentar zum Status "In Bearbeitung"                                                                                                                                                                                                                                                                                                                  
     117                 :      * @var string                                                                                                                                                                                                                                                                                                                                            
     118                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     119                 :      */                                                                                                                                                                                                                                                                                                                                                       
     120                 :     var $inProgressComment;                                                                                                                                                                                                                                                                                                                                   
     121                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     122                 :      * Timestamp, seit dem das Dokument bereit zur Abnahme ist                                                                                                                                                                                                                                                                                                
     123                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     124                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     125                 :      */                                                                                                                                                                                                                                                                                                                                                       
     126                 :     var $readyForApprovalSince;                                                                                                                                                                                                                                                                                                                               
     127                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     128                 :      * Kommentar zum Status "Bereit zur Abnahme"                                                                                                                                                                                                                                                                                                              
     129                 :      * @var string                                                                                                                                                                                                                                                                                                                                            
     130                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     131                 :      */                                                                                                                                                                                                                                                                                                                                                       
     132                 :     var $readyForApprovalComment;                                                                                                                                                                                                                                                                                                                             
     133                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     134                 :      * Timestamp, an dem um Feedback gebeten wurde                                                                                                                                                                                                                                                                                                            
     135                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     136                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     137                 :      */                                                                                                                                                                                                                                                                                                                                                       
     138                 :     var $feedbackRequestSince;                                                                                                                                                                                                                                                                                                                                
     139                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     140                 :      * Kommentar zum Status "Feedback erbeten"                                                                                                                                                                                                                                                                                                                
     141                 :      * @var string                                                                                                                                                                                                                                                                                                                                            
     142                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     143                 :      */                                                                                                                                                                                                                                                                                                                                                       
     144                 :     var $feedbackRequestComment;                                                                                                                                                                                                                                                                                                                              
     145                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     146                 :      * Timestamp, seit dem das Dokument als akzeptiert gilt                                                                                                                                                                                                                                                                                                   
     147                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     148                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     149                 :      */                                                                                                                                                                                                                                                                                                                                                       
     150                 :     var $acceptedSince;                                                                                                                                                                                                                                                                                                                                       
     151                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     152                 :      * Kommentar zum Status "Akzeptiert"                                                                                                                                                                                                                                                                                                                      
     153                 :      * @var string                                                                                                                                                                                                                                                                                                                                            
     154                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     155                 :      */                                                                                                                                                                                                                                                                                                                                                       
     156                 :     var $acceptedComment;                                                                                                                                                                                                                                                                                                                                     
     157                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     158                 :      * Timestamp, bis zu dem das Dokument überarbeitet werden muss                                                                                                                                                                                                                                                                                           
     159                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     160                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     161                 :      */                                                                                                                                                                                                                                                                                                                                                       
     162                 :     var $reviseUntil;                                                                                                                                                                                                                                                                                                                                         
     163                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     164                 :      * Kommentar zum Status "Überarbeitung erbeten"                                                                                                                                                                                                                                                                                                          
     165                 :      * @var string                                                                                                                                                                                                                                                                                                                                            
     166                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     167                 :      */                                                                                                                                                                                                                                                                                                                                                       
     168                 :     var $reviseComment;                                                                                                                                                                                                                                                                                                                                       
     169                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     170                 :      * Timestamp, an dem die Überarbeitung des Dokuments gewünscht wurde                                                                                                                                                                                                                                                                                    
     171                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     172                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     173                 :      */                                                                                                                                                                                                                                                                                                                                                       
     174                 :     var $reviseTS;                                                                                                                                                                                                                                                                                                                                            
     175                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     176                 :      * Timestamp, an dem ein Change Request gestellt wurde                                                                                                                                                                                                                                                                                                    
     177                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     178                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     179                 :      */                                                                                                                                                                                                                                                                                                                                                       
     180                 :     var $changeRequestSince;                                                                                                                                                                                                                                                                                                                                  
     181                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     182                 :      * Kommentar zum Status "Change Request"                                                                                                                                                                                                                                                                                                                  
     183                 :      * @var string                                                                                                                                                                                                                                                                                                                                            
     184                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     185                 :      */                                                                                                                                                                                                                                                                                                                                                       
     186                 :     var $changeRequestComment;                                                                                                                                                                                                                                                                                                                                
     187                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     188                 :      * Geschätzter Aufwand in Personentagen                                                                                                                                                                                                                                                                                                                  
     189                 :      * @var float                                                                                                                                                                                                                                                                                                                                             
     190                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     191                 :      */                                                                                                                                                                                                                                                                                                                                                       
     192                 :     var $estimatedEffort;                                                                                                                                                                                                                                                                                                                                     
     193                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     194                 :      * Timestamp der Schätzung des Aufwands                                                                                                                                                                                                                                                                                                                  
     195                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     196                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     197                 :      */                                                                                                                                                                                                                                                                                                                                                       
     198                 :     var $estimatedEffortTS;                                                                                                                                                                                                                                                                                                                                   
     199                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     200                 :      * Bisherige aufgewendete Personentage                                                                                                                                                                                                                                                                                                                    
     201                 :      * @var float                                                                                                                                                                                                                                                                                                                                             
     202                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     203                 :      */                                                                                                                                                                                                                                                                                                                                                       
     204                 :     var $daysSpent;                                                                                                                                                                                                                                                                                                                                           
     205                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     206                 :      * Timestamp der letzten Änderung des bisherigen Aufwands                                                                                                                                                                                                                                                                                                
     207                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     208                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     209                 :      */                                                                                                                                                                                                                                                                                                                                                       
     210                 :     var $daysSpentTS;                                                                                                                                                                                                                                                                                                                                         
     211                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     212                 :      * Erwartete Zeit zur Fertigstellung in Personentagen                                                                                                                                                                                                                                                                                                     
     213                 :      * @var float                                                                                                                                                                                                                                                                                                                                             
     214                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     215                 :      */                                                                                                                                                                                                                                                                                                                                                       
     216                 :     var $etc;                                                                                                                                                                                                                                                                                                                                                 
     217                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     218                 :      * Timestamp der letzten Änderung des ETC                                                                                                                                                                                                                                                                                                                
     219                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     220                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     221                 :      */                                                                                                                                                                                                                                                                                                                                                       
     222                 :     var $etcTS;                                                                                                                                                                                                                                                                                                                                               
     223                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     224                 :      * Kurs-ID, zu dem das Dokument gehört                                                                                                                                                                                                                                                                                                                   
     225                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     226                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     227                 :      */                                                                                                                                                                                                                                                                                                                                                       
     228                 :     var $courseID;                                                                                                                                                                                                                                                                                                                                            
     229                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     230                 :      * Array mit den Team-IDs, denen die das Dokument enthaltende Phase zugeordnet ist                                                                                                                                                                                                                                                                        
     231                 :      * @var array                                                                                                                                                                                                                                                                                                                                             
     232                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     233                 :      */                                                                                                                                                                                                                                                                                                                                                       
     234                 :     var $teamIDs;                                                                                                                                                                                                                                                                                                                                             
     235                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     236                 :      * Gibt an, wann das Planspiel abgeschlossen sein sollte.                                                                                                                                                                                                                                                                                                 
     237                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     238                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     239                 :      */                                                                                                                                                                                                                                                                                                                                                       
     240                 :     var $deadline;                                                                                                                                                                                                                                                                                                                                            
     241                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     242                 :      * Objekt welches das Budget samt Reviewer-Aufwand eines Dokumentes errechnet                                                                                                                                                                                                                                                                             
     243                 :      * @var PlanspielBudget                                                                                                                                                                                                                                                                                                                                   
     244                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     245                 :      */                                                                                                                                                                                                                                                                                                                                                       
     246                 :     var $planspielBudget;                                                                                                                                                                                                                                                                                                                                     
     247                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     248                 :      * Enthält den Aufwand des reviewers                                                                                                                                                                                                                                                                                                                     
     249                 :      * @var int                                                                                                                                                                                                                                                                                                                                               
     250                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     251                 :      */                                                                                                                                                                                                                                                                                                                                                       
     252                 :     var $reviewerBudget;                                                                                                                                                                                                                                                                                                                                      
     253                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     254                 :      * Konstruktor                                                                                                                                                                                                                                                                                                                                            
     255                 :      * Liest die Daten des Dokuments aus, dessen ID übergeben wurde                                                                                                                                                                                                                                                                                          
     256                 :      * oder erzeugt ein neues Dokumenten-Objekt mit der ID 0.                                                                                                                                                                                                                                                                                                 
     257                 :      *                                                                                                                                                                                                                                                                                                                                                        
     258                 :      * @access public                                                                                                                                                                                                                                                                                                                                         
     259                 :      * @param int $ID ID des Dokuments oder 0 für neues Dokument                                                                                                                                                                                                                                                                                             
     260                 :      * @param int $phaseID Bei neuen Dokumenten die ID der Phase, zu dem das Dokument gehört                                                                                                                                                                                                                                                                 
     261                 :      */                                                                                                                                                                                                                                                                                                                                                       
     262                 :     function Document($ID, $phaseID = 0) {                                                                                                                                                                                                                                                                                                                    
     263               0 :         global $db, $settings;                                                                                                                                                                                                                                                                                                                                
     264               0 :         $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                         
     265               0 :         if (strval(intval($ID)) == $ID && $ID > 0) {                                                                                                                                                                                                                                                                                                          
     266               0 :             $this->ID = intval($ID);                                                                                                                                                                                                                                                                                                                          
     267               0 :             $result = $db->get_row("SELECT * FROM {$dbp}planspiel_document WHERE id='$ID'");                                                                                                                                                                                                                                                                  
     268               0 :             if ($db->num_rows) {                                                                                                                                                                                                                                                                                                                              
     269               0 :                 $this->phaseID = intval($result->phase_id);                                                                                                                                                                                                                                                                                                   
     270               0 :                 $this->planspielID = intval($db->get_var("SELECT planspiel_id FROM {$dbp}planspiel_phase WHERE id='$this->phaseID'"));                                                                                                                                                                                                                        
     271               0 :                 $this->name = $result->name;                                                                                                                                                                                                                                                                                                                  
     272               0 :                 $this->description = $result->description;                                                                                                                                                                                                                                                                                                    
     273               0 :                 $this->type = intval($result->type_of);                                                                                                                                                                                                                                                                                                       
     274               0 :                 $this->templateID = intval($result->template_id);                                                                                                                                                                                                                                                                                             
     275               0 :                 $this->folderID = intval($result->save_to_folder);                                                                                                                                                                                                                                                                                            
     276               0 :                 $this->fileID = intval($result->file_id);                                                                                                                                                                                                                                                                                                     
     277               0 :                 $this->editorUserID = intval($result->editor_id);                                                                                                                                                                                                                                                                                             
     278               0 :                 $this->reviewerUserID = intval($result->reviewer_id);                                                                                                                                                                                                                                                                                         
     279               0 :                 $this->inProgressSince = intval($result->in_progress);                                                                                                                                                                                                                                                                                        
     280               0 :                 $this->inProgressComment = $result->progress_comment;                                                                                                                                                                                                                                                                                         
     281               0 :                 $this->readyForApprovalSince = intval($result->ready_for_approval);                                                                                                                                                                                                                                                                           
     282               0 :                 $this->readyForApprovalComment = $result->approval_comment;                                                                                                                                                                                                                                                                                   
     283               0 :                 $this->feedbackRequestSince = intval($result->feedback_requested);                                                                                                                                                                                                                                                                            
     284               0 :                 $this->feedbackRequestComment = $result->feedback_comment;                                                                                                                                                                                                                                                                                    
     285               0 :                 $this->acceptedSince = intval($result->accepted);                                                                                                                                                                                                                                                                                             
     286               0 :                 $this->acceptedComment = $result->accepted_comment;                                                                                                                                                                                                                                                                                           
     287               0 :                 $this->reviseUntil = intval($result->revise_until);                                                                                                                                                                                                                                                                                           
     288               0 :                 $this->reviseComment = $result->revise_comment;                                                                                                                                                                                                                                                                                               
     289               0 :                 $this->reviseTS = intval($result->revise_ts);                                                                                                                                                                                                                                                                                                 
     290               0 :                 $this->changeRequestSince = intval($result->change_request);                                                                                                                                                                                                                                                                                  
     291               0 :                 $this->changeRequestComment = $result->change_req_comment;                                                                                                                                                                                                                                                                                    
     292               0 :                 $this->estimatedEffortTS = intval($result->estimated_effort_ts);                                                                                                                                                                                                                                                                              
     293               0 :                 $this->daysSpentTS = intval($result->days_spent_ts);                                                                                                                                                                                                                                                                                          
     294               0 :                 $this->etcTS = intval($result->etc_ts);                                                                                                                                                                                                                                                                                                       
     295               0 :                 $this->deadline = $result->deadline;                                                                                                                                                                                                                                                                                                          
     296               0 :                 $this->estimatedEffort = $result->estimated_effort;                                                                                                                                                                                                                                                                                           
     297               0 :                 $this->daysSpent = $result->days_spent;                                                                                                                                                                                                                                                                                                       
     298               0 :                 $this->etc = $result->etc;                                                                                                                                                                                                                                                                                                                    
     299                 :                                                                                                                                                                                                                                                                                                                                                               
     300                 :                 // Setze das Budget des Dokuments                                                                                                                                                                                                                                                                                                             
     301               0 :                 $this->planspielBudget = new PlanspielBudget($this->planspielID);                                                                                                                                                                                                                                                                             
     302               0 :                 $this->reviewerBudget = $this->planspielBudget->GetReviewerBudget($this->ID);                                                                                                                                                                                                                                                                 
     303                 :                 // Addiere den Aufwand des Reviewers zum verbrauchten Budget                                                                                                                                                                                                                                                                                  
     304               0 :                 $this->daysSpent = $this->daysSpent + $this->reviewerBudget;                                                                                                                                                                                                                                                                                  
     305                 :                                                                                                                                                                                                                                                                                                                                                               
     306               0 :                 $this->courseID = intval($db->get_var("SELECT course_id FROM {$dbp}planspiel WHERE id='$this->planspielID'"));                                                                                                                                                                                                                                
     307               0 :                 $teamIDs = $db->get_col("SELECT team_id FROM {$dbp}planspiel_phase_team WHERE phase_id='$this->phaseID' ORDER BY team_id");                                                                                                                                                                                                                   
     308               0 :                 if ($db->num_rows) {                                                                                                                                                                                                                                                                                                                          
     309               0 :                     $this->teamIDs = array_map("intval", $teamIDs);                                                                                                                                                                                                                                                                                           
     310               0 :                 } else {                                                                                                                                                                                                                                                                                                                                      
     311               0 :                     $this->teamIDs = array();                                                                                                                                                                                                                                                                                                                 
     312                 :                 }                                                                                                                                                                                                                                                                                                                                             
     313               0 :             } else {                                                                                                                                                                                                                                                                                                                                          
     314               0 :                 $this->setDefaultValues($phaseID);                                                                                                                                                                                                                                                                                                            
     315                 :             }                                                                                                                                                                                                                                                                                                                                                 
     316               0 :         } else {                                                                                                                                                                                                                                                                                                                                              
     317               0 :             $this->setDefaultValues($phaseID);                                                                                                                                                                                                                                                                                                                
     318                 :         }                                                                                                                                                                                                                                                                                                                                                     
     319               0 :     }                                                                                                                                                                                                                                                                                                                                                         
     320                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     321                 :      * Setzt die Standardwerte für ein neues Dokumenten-Objekt.                                                                                                                                                                                                                                                                                              
     322                 :      *                                                                                                                                                                                                                                                                                                                                                        
     323                 :      * @access private                                                                                                                                                                                                                                                                                                                                        
     324                 :      * @param int $phaseID ID der Phase bei neuem Dokument                                                                                                                                                                                                                                                                                                    
     325                 :      * @return void                                                                                                                                                                                                                                                                                                                                           
     326                 :      */                                                                                                                                                                                                                                                                                                                                                       
     327                 :     function setDefaultValues($phaseID) {                                                                                                                                                                                                                                                                                                                     
     328               0 :         global $db, $settings;                                                                                                                                                                                                                                                                                                                                
     329               0 :         $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                         
     330               0 :         $this->ID = 0;                                                                                                                                                                                                                                                                                                                                        
     331               0 :         $this->phaseID = intval($phaseID);                                                                                                                                                                                                                                                                                                                    
     332               0 :         $this->planspielID = intval($db->get_var("SELECT planspiel_id FROM {$dbp}planspiel_phase WHERE id='$this->phaseID'"));                                                                                                                                                                                                                                
     333               0 :         $this->name = "";                                                                                                                                                                                                                                                                                                                                     
     334               0 :         $this->description = "";                                                                                                                                                                                                                                                                                                                              
     335               0 :         $this->type = 0;                                                                                                                                                                                                                                                                                                                                      
     336               0 :         $this->templateID = 0;                                                                                                                                                                                                                                                                                                                                
     337               0 :         $this->folderID = 0;                                                                                                                                                                                                                                                                                                                                  
     338               0 :         $this->fileID = 0;                                                                                                                                                                                                                                                                                                                                    
     339               0 :         $this->editorUserID = 0;                                                                                                                                                                                                                                                                                                                              
     340               0 :         $this->reviewerUserID = 0;                                                                                                                                                                                                                                                                                                                            
     341               0 :         $this->inProgressSince = 0;                                                                                                                                                                                                                                                                                                                           
     342               0 :         $this->inProgressComment = "";                                                                                                                                                                                                                                                                                                                        
     343               0 :         $this->readyForApprovalSince = 0;                                                                                                                                                                                                                                                                                                                     
     344               0 :         $this->readyForApprovalComment = "";                                                                                                                                                                                                                                                                                                                  
     345               0 :         $this->feedbackRequestSince = 0;                                                                                                                                                                                                                                                                                                                      
     346               0 :         $this->feedbackRequestComment = "";                                                                                                                                                                                                                                                                                                                   
     347               0 :         $this->acceptedSince = 0;                                                                                                                                                                                                                                                                                                                             
     348               0 :         $this->acceptedComment = "";                                                                                                                                                                                                                                                                                                                          
     349               0 :         $this->reviseUntil = 0;                                                                                                                                                                                                                                                                                                                               
     350               0 :         $this->reviseComment = "";                                                                                                                                                                                                                                                                                                                            
     351               0 :         $this->reviseTS = 0;                                                                                                                                                                                                                                                                                                                                  
     352               0 :         $this->changeRequestSince = 0;                                                                                                                                                                                                                                                                                                                        
     353               0 :         $this->changeRequestComment = "";                                                                                                                                                                                                                                                                                                                     
     354               0 :         $this->estimatedEffort = 0;                                                                                                                                                                                                                                                                                                                           
     355               0 :         $this->estimatedEffortTS = 0;                                                                                                                                                                                                                                                                                                                         
     356               0 :         $this->daysSpent = 0;                                                                                                                                                                                                                                                                                                                                 
     357               0 :         $this->daysSpentTS = 0;                                                                                                                                                                                                                                                                                                                               
     358               0 :         $this->etc = 0;                                                                                                                                                                                                                                                                                                                                       
     359               0 :         $this->etcTS = 0;                                                                                                                                                                                                                                                                                                                                     
     360               0 :         $this->courseID = $_SESSION["course"];                                                                                                                                                                                                                                                                                                                
     361               0 :         $teamIDs = $db->get_col("SELECT team_id FROM {$dbp}planspiel_phase_team WHERE phase_id='$this->phaseID' ORDER BY team_id");                                                                                                                                                                                                                           
     362               0 :         if ($db->num_rows) {                                                                                                                                                                                                                                                                                                                                  
     363               0 :             $this->teamIDs = array_map("intval", $teamIDs);                                                                                                                                                                                                                                                                                                   
     364               0 :         } else {                                                                                                                                                                                                                                                                                                                                              
     365               0 :             $this->teamIDs = array();                                                                                                                                                                                                                                                                                                                         
     366                 :         }                                                                                                                                                                                                                                                                                                                                                     
     367               0 :     }                                                                                                                                                                                                                                                                                                                                                         
     368                 :     /**                                                                                                                                                                                                                                                                                                                                                       
     369                 :      * Zeigt das Formular zum Bearbeiten des Dokuments an.                                                                                                                                                                                                                                                                                                    
     370                 :      * Je nach Rolle des Betrachters sind einige Angaben nicht editierbar.                                                                                                                                                                                                                                                                                    
     371                 :      *                                                                                                                                                                                                                                                                                                                                                        
     372                 :      * @access public                                                                                                                                                                                                                                                                                                                                         
     373                 :      * @param boolean $isLeader Der Betrachter ist Spielleiter                                                                                                                                                                                                                                                                                                
     374                 :      * @param boolean $isEditor Der Betrachter ist Bearbeiter oder Reviewer des Dokuments                                                                                                                                                                                                                                                                     
     375                 :      * @return void                                                                                                                                                                                                                                                                                                                                           
     376                 :      */                                                                                                                                                                                                                                                                                                                                                       
     377                 :     function showEditForm($isLeader, $isEditor, $isReviewer, $isResponsible) {                                                                                                                                                                                                                                                                                
     378               0 :         global $db, $settings;                                                                                                                                                                                                                                                                                                                                
     379               0 :         $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                         
     380               0 :         $ID = $this->getID();                                                                                                                                                                                                                                                                                                                                 
     381               0 :         $form = new Formular();                                                                                                                                                                                                                                                                                                                               
     382               0 :         $form->setTemplate("<table class='contentTable'>", "<tr valign='top'><td>", "<td>");                                                                                                                                                                                                                                                                  
     383               0 :         $form->setButtons(1, "Speichern");                                                                                                                                                                                                                                                                                                                    
     384               0 :         $form->addRawCode("<tr><td colspan='2' class='tableHead'>".($this->ID > 0 ? "Dokument bearbeiten" : "Neues Dokument") ."</td></tr>");                                                                                                                                                                                                                 
     385               0 :         $form->addInput("hidden", "ID", "", 0, $this->ID);                                                                                                                                                                                                                                                                                                    
     386               0 :         $form->addInput("hidden", "planspielID", "", 0, $this->planspielID);                                                                                                                                                                                                                                                                                  
     387               0 :         $form->addInput("hidden", "phaseID", "", 0, $this->phaseID);                                                                                                                                                                                                                                                                                          
     388               0 :         $width = "450px"; // Breite der Eingabefelder                                                                                                                                                                                                                                                                                                         
     389               0 :         if ($isLeader || $isResponsible) {                                                                                                                                                                                                                                                                                                                    
     390               0 :             $form->addToNextTag("style='width:$width'");                                                                                                                                                                                                                                                                                                      
     391               0 :             $form->addInput("text", "name", "Name", 60, $this->name, 100);                                                                                                                                                                                                                                                                                    
     392               0 :             $form->addToNextTag("style='width:$width'");                                                                                                                                                                                                                                                                                                      
     393               0 :             $form->addTextArea("description", "Beschreibung<br />(".BBCode::getTagOverviewLink() .")", 60, 10, $this->description);                                                                                                                                                                                                                           
     394                 :             // Dokumenttypen                                                                                                                                                                                                                                                                                                                                  
     395               0 :             $types = $db->get_results("SELECT * FROM {$dbp}planspiel_doc_type ORDER BY name");                                                                                                                                                                                                                                                                
     396               0 :             $docTypes = array(array("Neuen Typ anlegen", 0));                                                                                                                                                                                                                                                                                                 
     397               0 :             if ($db->num_rows) {                                                                                                                                                                                                                                                                                                                              
     398               0 :                 foreach($types as $type) {                                                                                                                                                                                                                                                                                                                    
     399               0 :                     $docTypes[] = array(Data::toHTML($type->name, false), intval($type->id));                                                                                                                                                                                                                                                                 
     400               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     401               0 :             }                                                                                                                                                                                                                                                                                                                                                 
     402               0 :             $form->addToNextTag("style='width:$width' id='type' onchange='if (this.value>0) document.getElementById(\"newtype\").disabled=true; else document.getElementById(\"newtype\").disabled=false;'");                                                                                                                                                 
     403               0 :             $form->addSelect("type", "Dokumenttyp", $docTypes, 1, false, ($this->type > 0 ? $this->type : ""));                                                                                                                                                                                                                                               
     404               0 :             $form->addToNextTag("style='width:$width' id='newtype'".($this->type > 0 ? " onfocus='if (document.getElementById(\"type\").value>0) this.disabled=true;'" : ""));                                                                                                                                                                                
     405               0 :             $form->addInput("text", "newtype", "Neuer Dokumenttyp<br /><span class='text10'>(Der neue Typ wird in allen anderen Planspielen auch zur Verf&uuml;gung stehen.)</span>");                                                                                                                                                                        
     406                 :             // Vorlagen                                                                                                                                                                                                                                                                                                                                       
     407               0 :             $templates = $db->get_results("SELECT fileID, {$dbp}filelist.name FROM {$dbp}filelist JOIN {$dbp}planspiel ON parent_object=template_folder WHERE id='$this->planspielID' AND type='file' ORDER BY {$dbp}filelist.name");                                                                                                                         
     408               0 :             $templateFiles = array(array("keine", 0));                                                                                                                                                                                                                                                                                                        
     409               0 :             if ($db->num_rows) {                                                                                                                                                                                                                                                                                                                              
     410               0 :                 foreach($templates as $template) {                                                                                                                                                                                                                                                                                                            
     411               0 :                     $templateFiles[] = array(Data::toHTML($template->name, false), intval($template->fileID));                                                                                                                                                                                                                                                
     412               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     413               0 :             }                                                                                                                                                                                                                                                                                                                                                 
     414               0 :             $form->addToNextTag("style='width:$width'");                                                                                                                                                                                                                                                                                                      
     415               0 :             $form->addSelect("template", "Vorlage", $templateFiles, 1, false, ($this->templateID > 0 ? $this->templateID : ""));                                                                                                                                                                                                                              
     416                 :             // Ablageordner                                                                                                                                                                                                                                                                                                                                   
     417               0 :             $filem = new Insert();                                                                                                                                                                                                                                                                                                                            
     418               0 :             $folders = array();                                                                                                                                                                                                                                                                                                                               
     419               0 :             $count = $filem->printSubFolder(0, "", $folders, 0, "");                                                                                                                                                                                                                                                                                          
     420               0 :             $form->addSelect("folder", "Ablage-Ordner", $folders, ($count > 8 ? 8 : $count), false, ($this->folderID > 0 ? $this->folderID : ""));                                                                                                                                                                                                            
     421                 :             // Bearbeiter und Reviewer                                                                                                                                                                                                                                                                                                                        
     422               0 :             $user = array();                                                                                                                                                                                                                                                                                                                                  
     423               0 :             if (!empty($this->teamIDs)) {                                                                                                                                                                                                                                                                                                                     
     424               0 :                 $utm = new UserTeamManagement((int)$this->courseID);                                                                                                                                                                                                                                                                                          
     425               0 :                 foreach($this->teamIDs as $teamID) {                                                                                                                                                                                                                                                                                                          
     426               0 :                     $team = new Team($teamID);                                                                                                                                                                                                                                                                                                                
     427               0 :                     foreach($utm->getUsersOfTeam($teamID) as $userID) {                                                                                                                                                                                                                                                                                       
     428               0 :                         $user[] = array(Data::toHTML($team->getName() .": ".$utm->users[$userID], false), $userID);                                                                                                                                                                                                                                           
     429               0 :                     }                                                                                                                                                                                                                                                                                                                                         
     430               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     431               0 :             } else {                                                                                                                                                                                                                                                                                                                                          
     432               0 :                 $participants = Course::getParticipants($this->courseID, "all", "user.Nachname, user.Vorname");                                                                                                                                                                                                                                               
     433               0 :                 foreach($participants as $participant) {                                                                                                                                                                                                                                                                                                      
     434               0 :                     $user[] = array(Data::toHTML($participant->lastname.", ".$participant->firstname, false), $participant->userid);                                                                                                                                                                                                                          
     435               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     436                 :             }                                                                                                                                                                                                                                                                                                                                                 
     437                 :                                                                                                                                                                                                                                                                                                                                                               
     438               0 :             if($isResponsible){                                                                                                                                                                                                                                                                                                                               
     439               0 :                 $form->addMarker();                                                                                                                                                                                                                                                                                                                           
     440               0 :                 echo $form->getForm(0);                                                                                                                                                                                                                                                                                                                       
     441               0 :                 echo "<tr valign='top'><td>Deadline</td><td>";                                                                                                                                                                                                                                                                                                
     442               0 :                 if($this->deadline > 0){                                                                                                                                                                                                                                                                                                                      
     443               0 :                     $date = getdate($this->deadline);                                                                                                                                                                                                                                                                                                         
     444               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     445                 :                 else{                                                                                                                                                                                                                                                                                                                                         
     446               0 :                     $date = getdate(time()+24*3600);                                                                                                                                                                                                                                                                                                          
     447                 :                 }                                                                                                                                                                                                                                                                                                                                             
     448               0 :                 $ds = new DateSelection($date["mday"], $date["mon"], $date["year"], $date["hours"], $date["minutes"]);                                                                                                                                                                                                                                        
     449               0 :                 $ds->clearStrings();                                                                                                                                                                                                                                                                                                                          
     450               0 :                 $ds->printCalender("deadline", "all");                                                                                                                                                                                                                                                                                                        
     451               0 :                 echo "</td></tr>";                                                                                                                                                                                                                                                                                                                            
     452               0 :                 $form->addToNextTag("id='in_progress'");                                                                                                                                                                                                                                                                                                      
     453               0 :                 if($this->inProgressSince == '0'){                                                                                                                                                                                                                                                                                                            
     454               0 :                     $form->addInput("checkbox", "in_progress", "<label for='in_progress'><strong>Dieses Dokument zur<br>Bearbeitung freigeben</strong></label>".($this->inProgressSince ? "<br />(".Output::echoDate("d.m.Y H:i", $this->inProgressSince) .")" : ""), 60, ($this->inProgressSince ? "1" : ""), $this->inProgressSince);                       
     455               0 :                 } else {                                                                                                                                                                                                                                                                                                                                      
     456               0 :                     $form->addRawCode("<tr><td>Bearbeitung</td><td>"."Dieses Dokument wurde am ".date("d.m.Y", $this->inProgressSince)." um ".date("H:i", $this->inProgressSince)." freigegeben."."</td></tr>");                                                                                                                                              
     457                 :                 }                                                                                                                                                                                                                                                                                                                                             
     458               0 :                 $form->addToNextTag("style='width:$width'");                                                                                                                                                                                                                                                                                                  
     459               0 :                 $form->addTextArea("progress_comment", "Kommentar zur Bearbeitung<br />(".BBCode::getTagOverviewLink() .")", 60, 10, $this->inProgressComment);                                                                                                                                                                                               
     460               0 :             } else {                                                                                                                                                                                                                                                                                                                                          
     461               0 :                 $form->addRawCode("<tr><td>Deadline</td><td>".($this->deadline > 0 ? date("d.m.Y", $this->deadline) : "Noch keine Angabe vom Phasenverantwortlichen.") ."</td></tr>");                                                                                                                                                                        
     462                 :             }                                                                                                                                                                                                                                                                                                                                                 
     463               0 :             $form->addToNextTag("style='width:$width'");                                                                                                                                                                                                                                                                                                      
     464               0 :             $form->addSelect("editor", "Bearbeiter", $user, 1, false, ($this->editorUserID > 0 ? $this->editorUserID : ""));                                                                                                                                                                                                                                  
     465               0 :             $form->addToNextTag("style='width:$width'");                                                                                                                                                                                                                                                                                                      
     466               0 :             $form->addSelect("reviewer", "Reviewer", $user, 1, false, ($this->reviewerUserID > 0 ? $this->reviewerUserID : ""));                                                                                                                                                                                                                              
     467               0 :         } else {                                                                                                                                                                                                                                                                                                                                              
     468               0 :             $form->addRawCode("<tr><td>Name</td><td>".Data::toHTML($this->name, false) ."</td></tr>");                                                                                                                                                                                                                                                        
     469               0 :             $form->addRawCode("<tr valign='top'><td>Beschreibung</td><td>".$this->getDescription() ."</td></tr>");                                                                                                                                                                                                                                            
     470               0 :             $form->addRawCode("<tr><td>Dokumenttyp</td><td>".Data::toHTML($this->getTypeName(), false) ."</td></tr>");                                                                                                                                                                                                                                        
     471               0 :             if ($this->templateID > 0) $form->addRawCode("<tr><td>Vorlage</td><td><a href='".PATH_TO_ROOT."ressourcen/filemanager.php?action=getfile&amp;actionID=$this->templateID'>".Data::toHTML($this->getTemplateName(), false) ."</a></td></tr>");                                                                                                      
     472               0 :             $form->addRawCode("<tr><td>Bearbeiter</td><td>".$this->getEditor() ."</td></tr>");                                                                                                                                                                                                                                                                
     473               0 :             $form->addRawCode("<tr><td>Reviewer</td><td>".$this->getReviewer() ."</td></tr>");                                                                                                                                                                                                                                                                
     474                 :         }                                                                                                                                                                                                                                                                                                                                                     
     475               0 :         if ($this->ID > 0) {                                                                                                                                                                                                                                                                                                                                  
     476               0 :                 if ($isEditor) {                                                                                                                                                                                                                                                                                                                              
     477               0 :                 $form->addInput("file", "upload", "Upload".($this->fileID ? "<br /><span class='text10'>(Die bereits vorhandene Datei wird &uuml;berschrieben.".($this->acceptedSince ? "<br />Der Akzeptiert-Status wird zurückgenommen." : "") .")</span>":                                                                                                
     478               0 :                     ""));                                                                                                                                                                                                                                                                                                                                     
     479               0 :                 } else {                                                                                                                                                                                                                                                                                                                                      
     480               0 :                     $form->addRawCode("<tr><td>Download</td><td>".($this->fileID ? $this->getLinkToFile() : "Noch keine Datei vorhanden.") ."</td></tr>");                                                                                                                                                                                                    
     481                 :                 }                                                                                                                                                                                                                                                                                                                                             
     482               0 :                 $form->addRawCode("<tr><td colspan='2' class='tableHead'>Aufwandsangaben + Deadline</td></tr>");                                                                                                                                                                                                                                              
     483               0 :                 if ($isResponsible && $this->estimatedEffortTS == 0) {                                                                                                                                                                                                                                                                                        
     484               0 :                     $form->addInput("text", "effort", "Gesch&auml;tzter Aufwand<br /><span class='text10'>(in <acronym title='Personentage'>PT</acronym>, kann nicht mehr ge&auml;ndert werden)</span>", 3, "", 4);                                                                                                                                           
     485               0 :                 } else {                                                                                                                                                                                                                                                                                                                                      
     486               0 :                     $form->addRawCode("<tr><td>Gesch&auml;tzter Aufwand</td><td>".($this->estimatedEffortTS > 0 ? $this->estimatedEffort." <acronym title='Personentage'>PT</acronym> (".Output::echoDate("d.m.Y H:i", $this->estimatedEffortTS) .")" : "Noch keine Angabe vom Phasenverantwortlichen.") ."</td></tr>");                                      
     487                 :                 }                                                                                                                                                                                                                                                                                                                                             
     488               0 :                 if ($isEditor || ($isReviewer && $this->readyForApprovalSince)) {                                                                                                                                                                                                                                                                             
     489               0 :                     $form->addInput("text", "spent", "Bisher aufgewendet <span class='text10'>(in <acronym title='Personentage'>PT</acronym>)</span>", 3, $this->daysSpent, 4);                                                                                                                                                                               
     490               0 :                     $form->addInput("text", "etc", "Gesch&auml;tzter Aufwand bis zur Fertigstellung (<acronym title='Estimated Time to Complete'>ETC</acronym>) <span class='text10'>(in <acronym title='Personentage'>PT</acronym>)</span>", 3, $this->etc, 4);                                                                                              
     491               0 :                 } else {                                                                                                                                                                                                                                                                                                                                      
     492               0 :                     $form->addRawCode("<tr><td>Bisher aufgewendet</td><td>".($this->daysSpentTS > 0 ? $this->daysSpent." <acronym title='Personentage'>PT</acronym> (".Output::echoDate("d.m.Y H:i", $this->daysSpentTS) .") davon (".$this->reviewerBudget." PT f&uuml;r Revieweraufwand)" : "Noch keine Angabe.") ."</td></tr>");                           
     493               0 :                     $form->addRawCode("<tr><td><acronym title='Estimated Time to Complete'>ETC</acronym></td><td>".($this->etcTS > 0 ? $this->etc." <acronym title='Personentage'>PT</acronym> (".Output::echoDate("d.m.Y H:i", $this->etcTS) .")" : "Noch keine Angabe.") ."</td></tr>");                                                                    
     494                 :                 }                                                                                                                                                                                                                                                                                                                                             
     495               0 :                 if ($isEditor){                                                                                                                                                                                                                                                                                                                               
     496               0 :                     if($this->inProgressSince > '0'){                                                                                                                                                                                                                                                                                                         
     497               0 :                         $form->addToNextTag("id='in_progress'");                                                                                                                                                                                                                                                                                              
     498               0 :                         $form->addRawCode("<tr><td>Bearbeitung</td><td>"."Dieses Dokument wurde am ".date("d.m.Y", $this->inProgressSince)." um ".date("H:i", $this->inProgressSince)." freigegeben."."</td></tr>");                                                                                                                                          
     499               0 :                       }                                                                                                                                                                                                                                                                                                                                       
     500               0 :                       $form->addRawCode("<tr><td>Deadline</td><td>".($this->deadline > 0 ? date("d.m.Y H:i", $this->deadline) : "Noch keine Angabe vom Phasenverantwortlichen.") ."</td></tr>");                                                                                                                                                              
     501               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     502               0 :                 if ($isEditor || $this->inProgressSince || $this->readyForApprovalSince || $this->feedbackRequestSince) {                                                                                                                                                                                                                                     
     503               0 :                     $form->addRawCode("<tr><td colspan='2' class='tableHead'>Bearbeiter-/Reviewer-Status</td></tr>");                                                                                                                                                                                                                                         
     504               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     505               0 :                 if ($isEditor) {                                                                                                                                                                                                                                                                                                                              
     506               0 :                     if ($this->estimatedEffort > 0 && $this->daysSpent > 0) {                                                                                                                                                                                                                                                                                 
     507               0 :                         $form->addToNextTag("id='ready_for_approval'");                                                                                                                                                                                                                                                                                       
     508               0 :                         $form->addInput("checkbox", "ready_for_approval", "<label for='ready_for_approval'><strong>Bereit zur Abnahme</strong></label>".($this->readyForApprovalSince ? "<br />(".Output::echoDate("d.m.Y H:i", $this->readyForApprovalSince) .")" : ""), 60, ($this->readyForApprovalSince ? "1" : ""), $this->readyForApprovalSince);       
     509               0 :                         $form->addToNextTag("style='width:$width'");                                                                                                                                                                                                                                                                                          
     510               0 :                         $form->addTextArea("approval_comment", "Kommentar<br />(".BBCode::getTagOverviewLink() .")", 60, 10, $this->readyForApprovalComment);                                                                                                                                                                                                 
     511               0 :                     } else {                                                                                                                                                                                                                                                                                                                                  
     512               0 :                         $form->addRawCode("<tr valign='top'><td><strong>Bereit zur Abnahme</strong></td><td>Das Dokument kann noch nicht als abnahmebereit markiert werden, solange kein Bearbeitungsaufwand eingetragen wurde.</td></tr>");                                                                                                                  
     513                 :                     }                                                                                                                                                                                                                                                                                                                                         
     514               0 :                     $form->addToNextTag("id='feedback_req'");                                                                                                                                                                                                                                                                                                 
     515               0 :                     $form->addInput("checkbox", "feedback_req", "<label for='feedback_req'><strong>Feedback erbeten</strong></label>".($this->feedbackRequestSince ? "<br />(".Output::echoDate("d.m.Y H:i", $this->feedbackRequestSince) .")" : ""), 60, ($this->feedbackRequestSince ? "1" : ""), $this->feedbackRequestSince);                             
     516               0 :                     $form->addToNextTag("style='width:$width'");                                                                                                                                                                                                                                                                                              
     517               0 :                     $form->addTextArea("feedback_comment", "Kommentar<br />(".BBCode::getTagOverviewLink() .")", 60, 10, $this->feedbackRequestComment);                                                                                                                                                                                                      
     518               0 :                 } else {                                                                                                                                                                                                                                                                                                                                      
     519               0 :                     if ($this->inProgressSince) {                                                                                                                                                                                                                                                                                                             
     520               0 :                         $form->addRawCode("<tr valign='top'><td><strong>In Bearbeitung</strong><br />seit dem ".Output::echoDate("d.m.Y H:i", $this->inProgressSince) ."</td><td>".$this->getInProgressComment() ."</td></tr>");                                                                                                                              
     521               0 :                     }                                                                                                                                                                                                                                                                                                                                         
     522               0 :                     if ($this->readyForApprovalSince) {                                                                                                                                                                                                                                                                                                       
     523               0 :                         $form->addRawCode("<tr valign='top'><td><strong>Bereit zur Abnahme</strong><br />seit dem ".Output::echoDate("d.m.Y H:i", $this->readyForApprovalSince) ."</td><td>".$this->getReadyForApprovalComment() ."</td></tr>");                                                                                                              
     524               0 :                     }                                                                                                                                                                                                                                                                                                                                         
     525               0 :                     if ($this->feedbackRequestSince) {                                                                                                                                                                                                                                                                                                        
     526               0 :                         $form->addRawCode("<tr valign='top'><td><strong>Feedback erbeten</strong><br />am ".Output::echoDate("d.m.Y H:i", $this->feedbackRequestSince) ."</td><td>".$this->getFeedbackRequestComment() ."</td></tr>");                                                                                                                        
     527               0 :                     }                                                                                                                                                                                                                                                                                                                                         
     528                 :                 }                                                                                                                                                                                                                                                                                                                                             
     529               0 :                 if ($isLeader || $isResponsible || $this->acceptedSince || $this->reviseUntil || $this->changeRequestSince || $isReviewer) {                                                                                                                                                                                                                  
     530               0 :                     $form->addRawCode("<tr><td colspan='2' class='tableHead'>Abnahme-Status</td></tr>");                                                                                                                                                                                                                                                      
     531               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     532               0 :                 if ($this->fileID > 0 && ($isLeader || $isResponsible || ($isReviewer && $this->readyForApprovalSince))) {                                                                                                                                                                                                                                    
     533               0 :                     $form->addToNextTag("id='accepted'");                                                                                                                                                                                                                                                                                                     
     534               0 :                     $form->addInput("checkbox", "accepted", "<label for='accepted'><strong>Akzeptiert</strong></label>".($this->acceptedSince ? "<br />(".Output::echoDate("d.m.Y H:i", $this->acceptedSince) .")" : ""), 60, ($this->acceptedSince ? "1" : ""), $this->acceptedSince);                                                                       
     535               0 :                     $form->addToNextTag("style='width:$width'");                                                                                                                                                                                                                                                                                              
     536               0 :                     $form->addTextArea("accepted_comment", "Kommentar<br />(".BBCode::getTagOverviewLink() .")", 60, 10, $this->acceptedComment);                                                                                                                                                                                                             
     537               0 :                     $form->addToNextTag("id='revise'");                                                                                                                                                                                                                                                                                                       
     538               0 :                     $form->addInput("checkbox", "revise", "<label for='revise'><strong>&Uuml;berarbeitung erbeten</strong></label>".($this->reviseTS ? "<br />(".Output::echoDate("d.m.Y H:i", $this->reviseTS) .")" : ""), 60, ($this->reviseUntil ? "1" : ""), $this->reviseUntil);                                                                         
     539               0 :                     $form->addMarker();                                                                                                                                                                                                                                                                                                                       
     540               0 :                     $form->addToNextTag("style='width:$width'");                                                                                                                                                                                                                                                                                              
     541               0 :                     $form->addTextArea("revise_comment", "Kommentar<br />(".BBCode::getTagOverviewLink() .")", 60, 10, $this->reviseComment);                                                                                                                                                                                                                 
     542               0 :                     $form->addToNextTag("id='change_req'");                                                                                                                                                                                                                                                                                                   
     543               0 :                     $form->addInput("checkbox", "change_req", "<label for='change_req'><strong>Change Request</strong></label>".($this->changeRequestSince ? "<br />(".Output::echoDate("d.m.Y H:i", $this->changeRequestSince) .")" : ""), 60, ($this->changeRequestSince ? "1" : ""), $this->changeRequestSince);                                           
     544               0 :                     $form->addToNextTag("style='width:$width'");                                                                                                                                                                                                                                                                                              
     545               0 :                     $form->addTextArea("change_req_comment", "Kommentar<br />(".BBCode::getTagOverviewLink() .")", 60, 10, $this->changeRequestComment);                                                                                                                                                                                                      
     546               0 :                 } else if ($this->fileID > 0) {                                                                                                                                                                                                                                                                                                               
     547               0 :                     if ($isReviewer && !$this->readyForApprovalSince) {                                                                                                                                                                                                                                                                                       
     548               0 :                         $form->addRawCode("<tr valign='top'><td colspan='2'>Das Dokument ist noch nicht zur Abnahme bereit.</td></tr>");                                                                                                                                                                                                                      
     549               0 :                     }                                                                                                                                                                                                                                                                                                                                         
     550               0 :                     if ($this->acceptedSince) {                                                                                                                                                                                                                                                                                                               
     551               0 :                         $form->addRawCode("<tr valign='top'><td><strong>Akzeptiert</strong><br />am ".Output::echoDate("d.m.Y H:i", $this->acceptedSince) ."</td><td>".$this->getAcceptedComment() ."</td></tr>");                                                                                                                                            
     552               0 :                     }                                                                                                                                                                                                                                                                                                                                         
     553               0 :                     if ($this->reviseUntil) {                                                                                                                                                                                                                                                                                                                 
     554               0 :                         $form->addRawCode("<tr valign='top'><td><strong>&Uuml;berarbeitung</strong><br />bis zum ".Output::echoDate("d.m.Y", $this->reviseUntil) ."</td><td>".$this->getReviseComment() ."</td></tr>");                                                                                                                                       
     555               0 :                     }                                                                                                                                                                                                                                                                                                                                         
     556               0 :                     if ($this->changeRequestSince) {                                                                                                                                                                                                                                                                                                          
     557               0 :                         $form->addRawCode("<tr valign='top'><td><strong>Change Request</strong><br />am ".Output::echoDate("d.m.Y H:i", $this->changeRequestSince) ."</td><td>".$this->getChangeRequestComment() ."</td></tr>");                                                                                                                              
     558               0 :                     }                                                                                                                                                                                                                                                                                                                                         
     559               0 :                 } else {                                                                                                                                                                                                                                                                                                                                      
     560               0 :                     $form->addRawCode("<tr valign='top'><td colspan='2'>Es wurde noch keine Datei für das Dokument hochgeladen.</td></tr>");                                                                                                                                                                                                                 
     561                 :                 }                                                                                                                                                                                                                                                                                                                                             
     562               0 :             }                                                                                                                                                                                                                                                                                                                                                 
     563               0 :             if ($isLeader || $isResponsible || $isEditor || ($isReviewer && $this->readyForApprovalSince)) {                                                                                                                                                                                                                                                  
     564               0 :                 $form->addButtons();                                                                                                                                                                                                                                                                                                                          
     565               0 :             }                                                                                                                                                                                                                                                                                                                                                 
     566               0 :             if ($this->fileID > 0 && $this->ID > 0 && ($isLeader || $isResponsible || ($isReviewer && $this->readyForApprovalSince))) {                                                                                                                                                                                                                       
     567                 :                 if($isResponsible)                                                                                                                                                                                                                                                                                                                            
     568               0 :                     echo $form->getForm(1);                                                                                                                                                                                                                                                                                                                   
     569                 :                 else                                                                                                                                                                                                                                                                                                                                          
     570               0 :                     echo $form->getForm(0);                                                                                                                                                                                                                                                                                                                   
     571                 :                 // Datumauswahl für Überarbeitung anzeigen                                                                                                                                                                                                                                                                                                  
     572               0 :                 echo "<tr valign='top'><td>Bis zum</td><td>";                                                                                                                                                                                                                                                                                                 
     573               0 :                 if ($this->reviseUntil) {                                                                                                                                                                                                                                                                                                                     
     574               0 :                     $date = getdate($this->reviseUntil);                                                                                                                                                                                                                                                                                                      
     575               0 :                 } else {                                                                                                                                                                                                                                                                                                                                      
     576               0 :                     $date = getdate();                                                                                                                                                                                                                                                                                                                        
     577                 :                 }                                                                                                                                                                                                                                                                                                                                             
     578               0 :                 $ds = new DateSelection($date["mday"], $date["mon"], $date["year"]);                                                                                                                                                                                                                                                                          
     579               0 :                 $ds->clearStrings();                                                                                                                                                                                                                                                                                                                          
     580               0 :                 $ds->printCalender("revise_until", "dateExt");                                                                                                                                                                                                                                                                                                
     581               0 :                 echo "</td></tr>";                                                                                                                                                                                                                                                                                                                            
     582                 :                 if($isResponsible)                                                                                                                                                                                                                                                                                                                            
     583               0 :                     echo $form->getForm(2);                                                                                                                                                                                                                                                                                                                   
     584                 :                 else                                                                                                                                                                                                                                                                                                                                          
     585               0 :                     echo $form->getForm(1);                                                                                                                                                                                                                                                                                                                   
     586               0 :             } else {                                                                                                                                                                                                                                                                                                                                          
     587               0 :                 echo $form->getForm(1);                                                                                                                                                                                                                                                                                                                       
     588                 :             }                                                                                                                                                                                                                                                                                                                                                 
     589               0 :         }                                                                                                                                                                                                                                                                                                                                                     
     590                 :                                                                                                                                                                                                                                                                                                                                                               
     591                 :         /**                                                                                                                                                                                                                                                                                                                                                   
     592                 :          * Zeigt die Details des Dokuments an.                                                                                                                                                                                                                                                                                                                
     593                 :            *                                                                                                                                                                                                                                                                                                                                                  
     594                 :         * @access public                                                                                                                                                                                                                                                                                                                                      
     595                 :         * @return void                                                                                                                                                                                                                                                                                                                                        
     596                 :      */                                                                                                                                                                                                                                                                                                                                                       
     597                 :     function showDetails() {                                                                                                                                                                                                                                                                                                                                  
     598               0 :         global $db, $settings;                                                                                                                                                                                                                                                                                                                                
     599               0 :         $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                         
     600               0 :         $ID = $this->getID();                                                                                                                                                                                                                                                                                                                                 
     601               0 :         $form = new Formular();                                                                                                                                                                                                                                                                                                                               
     602               0 :         $form->setTemplate("<table class='contentTable'>", "<tr valign='top'><td>", "<td>");                                                                                                                                                                                                                                                                  
     603               0 :         $form->setButtons(1, "Speichern");                                                                                                                                                                                                                                                                                                                    
     604               0 :         $form->addRawCode("<tr><td colspan='2' class='tableHead'>".($this->ID > 0 ? "Dokument bearbeiten" : "Neues Dokument") ."</td></tr>");                                                                                                                                                                                                                 
     605               0 :         $form->addInput("hidden", "ID", "", 0, $this->ID);                                                                                                                                                                                                                                                                                                    
     606               0 :         $form->addInput("hidden", "planspielID", "", 0, $this->planspielID);                                                                                                                                                                                                                                                                                  
     607               0 :         $form->addInput("hidden", "phaseID", "", 0, $this->phaseID);                                                                                                                                                                                                                                                                                          
     608               0 :         $width = "450px"; // Breite der Eingabefelder                                                                                                                                                                                                                                                                                                         
     609               0 :         $form->addRawCode("<tr><td>Name</td><td>".Data::toHTML($this->name, false) ."</td></tr>");                                                                                                                                                                                                                                                            
     610               0 :             $form->addRawCode("<tr valign='top'><td>Beschreibung</td><td>".$this->getDescription() ."</td></tr>");                                                                                                                                                                                                                                            
     611               0 :             $form->addRawCode("<tr><td>Dokumenttyp</td><td>".Data::toHTML($this->getTypeName(), false) ."</td></tr>");                                                                                                                                                                                                                                        
     612               0 :         if ($this->templateID > 0) $form->addRawCode("<tr><td>Vorlage</td><td><a href='".PATH_TO_ROOT."ressourcen/filemanager.php?action=getfile&amp;actionID=$this->templateID'>".Data::toHTML($this->getTemplateName(), false) ."</a></td></tr>");                                                                                                          
     613               0 :             $form->addRawCode("<tr><td>Bearbeiter</td><td>".$this->getEditor() ."</td></tr>");                                                                                                                                                                                                                                                                
     614               0 :             $form->addRawCode("<tr><td>Reviewer</td><td>".$this->getReviewer() ."</td></tr>");                                                                                                                                                                                                                                                                
     615               0 :          if ($this->ID > 0) {                                                                                                                                                                                                                                                                                                                                 
     616               0 :             $form->addRawCode("<tr><td>Download</td><td>".($this->fileID ? $this->getLinkToFile() : "Noch keine Datei vorhanden.") ."</td></tr>");                                                                                                                                                                                                            
     617               0 :             $form->addRawCode("<tr><td colspan='2' class='tableHead'>Aufwandsangaben + Deadline</td></tr>");                                                                                                                                                                                                                                                  
     618               0 :             $form->addRawCode("<tr><td>Gesch&auml;tzter Aufwand</td><td>".($this->estimatedEffortTS > 0 ? $this->estimatedEffort." <acronym title='Personentage'>PT</acronym> (".Output::echoDate("d.m.Y H:i", $this->estimatedEffortTS) .")" : "Noch keine Angabe vom Phasenverantwortlichen.") ."</td></tr>");                                              
     619               0 :             $form->addRawCode("<tr><td>Bisher aufgewendet</td><td>".($this->daysSpentTS > 0 ? $this->daysSpent." <acronym title='Personentage'>PT</acronym> (".Output::echoDate("d.m.Y H:i", $this->daysSpentTS) .")" : "Noch keine Angabe.") ."</td></tr>");                                                                                                 
     620               0 :             $form->addRawCode("<tr><td><acronym title='Estimated Time to Complete'>ETC</acronym></td><td>".($this->etcTS > 0 ? $this->etc." <acronym title='Personentage'>PT</acronym> (".Output::echoDate("d.m.Y H:i", $this->etcTS) .")" : "Noch keine Angabe.") ."</td></tr>");                                                                            
     621               0 :             $deadline = intval($db->get_var("SELECT deadline FROM {$dbp}planspiel_document WHERE ID='$ID'"));                                                                                                                                                                                                                                                 
     622               0 :             $form->addRawCode("<tr><td>Bearbeitung</td><td>"."Dieses Dokument wurde am ".date("d.m.Y", $this->inProgressSince)." um ".date("H:i", $this->inProgressSince)." freigegeben."."</td></tr>");                                                                                                                                                      
     623               0 :             $form->addRawCode("<tr><td>Deadline</td><td>".($deadline != "0" ? date("d.m.Y, H:i", $deadline)." Uhr" : "Noch keine Angabe vom Phasenverantwortlichen.") ."</td></tr>");                                                                                                                                                                         
     624               0 :             if ($this->inProgressSince) {                                                                                                                                                                                                                                                                                                                     
     625               0 :                 $form->addRawCode("<tr valign='top'><td><strong>In Bearbeitung</strong><br />seit dem ".Output::echoDate("d.m.Y H:i", $this->inProgressSince) ."</td><td>".$this->getInProgressComment() ."</td></tr>");                                                                                                                                      
     626               0 :             }                                                                                                                                                                                                                                                                                                                                                 
     627               0 :             if ($this->readyForApprovalSince) {                                                                                                                                                                                                                                                                                                               
     628               0 :                 $form->addRawCode("<tr valign='top'><td><strong>Bereit zur Abnahme</strong><br />seit dem ".Output::echoDate("d.m.Y H:i", $this->readyForApprovalSince) ."</td><td>".$this->getReadyForApprovalComment() ."</td></tr>");                                                                                                                      
     629               0 :             }                                                                                                                                                                                                                                                                                                                                                 
     630               0 :             if ($this->feedbackRequestSince) {                                                                                                                                                                                                                                                                                                                
     631               0 :                 $form->addRawCode("<tr valign='top'><td><strong>Feedback erbeten</strong><br />am ".Output::echoDate("d.m.Y H:i", $this->feedbackRequestSince) ."</td><td>".$this->getFeedbackRequestComment() ."</td></tr>");                                                                                                                                
     632               0 :             }                                                                                                                                                                                                                                                                                                                                                 
     633               0 :             if ($this->fileID > 0) {                                                                                                                                                                                                                                                                                                                          
     634               0 :                 if ($this->acceptedSince) {                                                                                                                                                                                                                                                                                                                   
     635               0 :                     $form->addRawCode("<tr valign='top'><td><strong>Akzeptiert</strong><br />am ".Output::echoDate("d.m.Y H:i", $this->acceptedSince) ."</td><td>".$this->getAcceptedComment() ."</td></tr>");                                                                                                                                                
     636               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     637               0 :                 if ($this->reviseUntil) {                                                                                                                                                                                                                                                                                                                     
     638               0 :                     $form->addRawCode("<tr valign='top'><td><strong>&Uuml;berarbeitung</strong><br />bis zum ".Output::echoDate("d.m.Y", $this->reviseUntil) ."</td><td>".$this->getReviseComment() ."</td></tr>");                                                                                                                                           
     639               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     640               0 :                 if ($this->changeRequestSince) {                                                                                                                                                                                                                                                                                                              
     641               0 :                     $form->addRawCode("<tr valign='top'><td><strong>Change Request</strong><br />am ".Output::echoDate("d.m.Y H:i", $this->changeRequestSince) ."</td><td>".$this->getChangeRequestComment() ."</td></tr>");                                                                                                                                  
     642               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     643               0 :             }                                                                                                                                                                                                                                                                                                                                                 
     644                 :             else {                                                                                                                                                                                                                                                                                                                                            
     645               0 :                 $form->addRawCode("<tr valign='top'><td colspan='2'>Es wurde noch keine Datei für das Dokument hochgeladen.</td></tr>");                                                                                                                                                                                                                     
     646                 :             }                                                                                                                                                                                                                                                                                                                                                 
     647               0 :         }                                                                                                                                                                                                                                                                                                                                                     
     648               0 :         echo $form->getForm();                                                                                                                                                                                                                                                                                                                                
     649               0 :     }                                                                                                                                                                                                                                                                                                                                                         
     650                 :                                                                                                                                                                                                                                                                                                                                                               
     651                 :         /**                                                                                                                                                                                                                                                                                                                                                   
     652                 :          * Versucht, die im übergebenen Array vorhandenen Daten anhand der                                                                                                                                                                                                                                                                                   
     653                 :          * assoziativen Array-Indizes als neue Dokument-Daten abzuspeichern. Dabei                                                                                                                                                                                                                                                                            
     654                 :          * kann es sich zum Beispiel um das $_POST-Array handeln. Es werden dabei                                                                                                                                                                                                                                                                             
     655                 :          * entweder alle oder keine Daten gespeichert. Sind einige der Daten                                                                                                                                                                                                                                                                                  
     656                 :          * fehlerhaft, wird ein String mit Fehlermeldungen zurückgeliefert, sonst                                                                                                                                                                                                                                                                            
     657                 :          * der boolsche Wert true.                                                                                                                                                                                                                                                                                                                            
     658                 :          *                                                                                                                                                                                                                                                                                                                                                    
     659                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
     660                 :          * @param array $data Assoziatives Array mit den neuen Werten                                                                                                                                                                                                                                                                                         
     661                 :          * @param boolean $isLeader Der Betrachter ist Spielleiter                                                                                                                                                                                                                                                                                            
     662                 :          * @param boolean $isEditor Der Betrachter ist Bearbeiter oder Reviewer des Dokuments                                                                                                                                                                                                                                                                 
     663                 :          * @return mixed String mit Fehlermeldungen oder true bei Erfolg                                                                                                                                                                                                                                                                                      
     664                 :          */                                                                                                                                                                                                                                                                                                                                                   
     665                 :         function setData($data, $isLeader, $isEditor, $isReviewer) {                                                                                                                                                                                                                                                                                          
     666               0 :             $errors = "";                                                                                                                                                                                                                                                                                                                                     
     667               0 :             if ($isLeader) {                                                                                                                                                                                                                                                                                                                                  
     668               0 :                 if (($result = $this->validateName($data["name"])) !== true) {                                                                                                                                                                                                                                                                                
     669               0 :                     $errors.= $result."\n";                                                                                                                                                                                                                                                                                                                   
     670               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     671               0 :                 if (($result = $this->validateDocumentType($data["type"], isset($data["newtype"]) ? $data["newtype"] : "")) !== true) {                                                                                                                                                                                                                       
     672               0 :                     $errors.= $result."\n";                                                                                                                                                                                                                                                                                                                   
     673               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     674               0 :                 if (($result = $this->validateTemplateID($data["template"])) !== true) {                                                                                                                                                                                                                                                                      
     675               0 :                     $errors.= $result."\n";                                                                                                                                                                                                                                                                                                                   
     676               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     677               0 :                 if (($result = $this->validateFolderID(isset($data["folder"]) ? $data["folder"] : "")) !== true) {                                                                                                                                                                                                                                            
     678               0 :                     $errors.= $result."\n";                                                                                                                                                                                                                                                                                                                   
     679               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     680               0 :                 if (($result = $this->validateEditorUserID($data["editor"])) !== true) {                                                                                                                                                                                                                                                                      
     681               0 :                     $errors.= $result."\n";                                                                                                                                                                                                                                                                                                                   
     682               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     683               0 :                 if (($result = $this->validateReviewerUserID($data["reviewer"])) !== true) {                                                                                                                                                                                                                                                                  
     684               0 :                     $errors.= $result."\n";                                                                                                                                                                                                                                                                                                                   
     685               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     686               0 :                 if (($result = $this->validateReviewer($data["reviewer"], $data["editor"])) !== true) {                                                                                                                                                                                                                                                       
     687               0 :                     $errors.= $result."\n";                                                                                                                                                                                                                                                                                                                   
     688               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     689               0 :                 if (isset($data["deadline_hour"]) && ($result = $this->validateDeadline(mktime($data["deadline_hour"], $data["deadline_minute"], 0, $data["deadline_month"], $data["deadline_day"], $data["deadline_year"]))) !== true) {                                                                                                                     
     690               0 :                     $errors.= $result."\n";                                                                                                                                                                                                                                                                                                                   
     691               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     692               0 :             }                                                                                                                                                                                                                                                                                                                                                 
     693               0 :             if (($isLeader || $isReviewer) && $this->ID > 0 && isset($data["revise"])) {                                                                                                                                                                                                                                                                      
     694               0 :                 if (($result = $this->validateReviseUntilDate(mktime(23, 59, 59, $data["revise_until_month"], $data["revise_until_day"], $data["revise_until_year"]))) !== true) {                                                                                                                                                                            
     695               0 :                     $errors.= $result."\n";                                                                                                                                                                                                                                                                                                                   
     696               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     697               0 :             }                                                                                                                                                                                                                                                                                                                                                 
     698               0 :             if ($this->ID > 0 && $isLeader) {                                                                                                                                                                                                                                                                                                                 
     699               0 :                 if ($this->estimatedEffortTS == 0) {                                                                                                                                                                                                                                                                                                          
     700               0 :                     if (($result = $this->validateEstimatedEffort($data["effort"])) !== true) {                                                                                                                                                                                                                                                               
     701               0 :                         $errors.= $result."\n";                                                                                                                                                                                                                                                                                                               
     702               0 :                     }                                                                                                                                                                                                                                                                                                                                         
     703               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     704               0 :             }                                                                                                                                                                                                                                                                                                                                                 
     705               0 :             if ($this->ID > 0 && ($isEditor || $isReviewer)) {                                                                                                                                                                                                                                                                                                
     706               0 :                 if (($result = $this->validateDaysSpent($data["spent"])) !== true) {                                                                                                                                                                                                                                                                          
     707               0 :                     $errors.= $result."\n";                                                                                                                                                                                                                                                                                                                   
     708               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     709               0 :                 if (($result = $this->validateETC($data["etc"])) !== true) {                                                                                                                                                                                                                                                                                  
     710               0 :                     $errors.= $result."\n";                                                                                                                                                                                                                                                                                                                   
     711               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     712               0 :             }                                                                                                                                                                                                                                                                                                                                                 
     713               0 :             if (empty($errors)) {                                                                                                                                                                                                                                                                                                                             
     714               0 :                 if ($isLeader) {                                                                                                                                                                                                                                                                                                                              
     715               0 :                     if (!$this->setName($data["name"])) {                                                                                                                                                                                                                                                                                                     
     716               0 :                         return "Name konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                                       
     717                 :                     }                                                                                                                                                                                                                                                                                                                                         
     718               0 :                     if (!$this->setDescription($data["description"])) {                                                                                                                                                                                                                                                                                       
     719               0 :                         return "Beschreibung konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                               
     720                 :                     }                                                                                                                                                                                                                                                                                                                                         
     721               0 :                     if (!$this->setDocumentType($data["type"], isset($data["newtype"]) ? $data["newtype"] : "")) {                                                                                                                                                                                                                                            
     722               0 :                         return "Dokumenttyp konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                                
     723                 :                     }                                                                                                                                                                                                                                                                                                                                         
     724               0 :                     if (!$this->setTemplateID($data["template"])) {                                                                                                                                                                                                                                                                                           
     725               0 :                         return "Vorlage konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                                    
     726                 :                     }                                                                                                                                                                                                                                                                                                                                         
     727               0 :                     if (!$this->setFolderID($data["folder"])) {                                                                                                                                                                                                                                                                                               
     728               0 :                         return "Ablage-Ordner konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                              
     729                 :                     }                                                                                                                                                                                                                                                                                                                                         
     730               0 :                     if (!$this->setEditorUserID($data["editor"])) {                                                                                                                                                                                                                                                                                           
     731               0 :                         return "Bearbeiter konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                                 
     732                 :                     }                                                                                                                                                                                                                                                                                                                                         
     733               0 :                     if (!$this->setReviewerUserID($data["reviewer"])) {                                                                                                                                                                                                                                                                                       
     734               0 :                         return "Reviewer konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                                   
     735                 :                     }                                                                                                                                                                                                                                                                                                                                         
     736               0 :                     if (isset($data["effort"]) && !$this->setEstimatedEffort($data["effort"])) {                                                                                                                                                                                                                                                              
     737               0 :                         return "Geschätzter Aufwand konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                       
     738                 :                     }                                                                                                                                                                                                                                                                                                                                         
     739               0 :                     if (isset($data["deadline_hour"]) && !$this->setDeadline(mktime($data["deadline_hour"], $data["deadline_minute"], 0, $data["deadline_month"], $data["deadline_day"], $data["deadline_year"]))) {                                                                                                                                          
     740               0 :                         return "Deadline konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                                   
     741                 :                     }                                                                                                                                                                                                                                                                                                                                         
     742               0 :                     if (isset($data["in_progress"]) && !$this->setInProgress((isset($data["in_progress"]) ? time() : 0), $data["progress_comment"])) {                                                                                                                                                                                                        
     743               0 :                         return "Bearbeitungs-Status konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                        
     744                 :                     }                                                                                                                                                                                                                                                                                                                                         
     745               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     746               0 :                 if (($isLeader || $isReviewer) && $this->ID > 0) {                                                                                                                                                                                                                                                                                            
     747               0 :                     if (!$this->setAccepted((isset($data["accepted"]) ? time() : 0), isset($data["accepted_comment"]) ? $data["accepted_comment"] : "")) {                                                                                                                                                                                                    
     748               0 :                         return "Akzeptiert-Status konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                          
     749                 :                     }                                                                                                                                                                                                                                                                                                                                         
     750               0 :                     if (!$this->setReviseUntil((isset($data["revise"]) ? time() : 0), (isset($data["revise"]) ? mktime(23, 59, 59, $data["revise_until_month"], $data["revise_until_day"], $data["revise_until_year"]) : 0), isset($data["revise_comment"]) ? $data["revise_comment"] : "")) {                                                                
     751               0 :                         return "Überarbeitungs-Status konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                     
     752                 :                     }                                                                                                                                                                                                                                                                                                                                         
     753               0 :                     if (!$this->setChangeRequest((isset($data["change_req"]) ? time() : 0), isset($data["change_req_comment"]) ? $data["change_req_comment"] : "")) {                                                                                                                                                                                         
     754               0 :                         return "Change Request konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                             
     755                 :                     }                                                                                                                                                                                                                                                                                                                                         
     756               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     757               0 :                 if ($this->ID > 0 && $isEditor) {                                                                                                                                                                                                                                                                                                             
     758               0 :                     if (!$this->setReadyForApproval((isset($data["ready_for_approval"]) ? time() : 0), (isset($data["approval_comment"]) ? $data["approval_comment"] : ""))) {                                                                                                                                                                                
     759               0 :                         return "Bereitschaft zur Abnahme konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                   
     760                 :                     }                                                                                                                                                                                                                                                                                                                                         
     761               0 :                     if (!$this->setFeedbackRequest((isset($data["feedback_req"]) ? time() : 0), $data["feedback_comment"])) {                                                                                                                                                                                                                                 
     762               0 :                         return "Feedback-Anfrage konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                           
     763                 :                     }                                                                                                                                                                                                                                                                                                                                         
     764               0 :                     if ($_FILES["upload"]["error"] == UPLOAD_ERR_OK) {                                                                                                                                                                                                                                                                                        
     765               0 :                         $this->setFile();                                                                                                                                                                                                                                                                                                                     
     766               0 :                     }                                                                                                                                                                                                                                                                                                                                         
     767               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     768               0 :                 if ($this->ID > 0 && ($isEditor || $isReviewer)) {                                                                                                                                                                                                                                                                                            
     769               0 :                     if (isset($data["spent"]) && !$this->setDaysSpent($data["spent"])) {                                                                                                                                                                                                                                                                      
     770               0 :                         return "Bisheriger Aufwand konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                         
     771                 :                     }                                                                                                                                                                                                                                                                                                                                         
     772               0 :                     if (isset($data["etc"]) && !$this->setETC($data["etc"])) {                                                                                                                                                                                                                                                                                
     773               0 :                         return "ETC konnte nicht gespeichert werden.";                                                                                                                                                                                                                                                                                        
     774                 :                     }                                                                                                                                                                                                                                                                                                                                         
     775               0 :                 }                                                                                                                                                                                                                                                                                                                                             
     776               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
     777                 :             }                                                                                                                                                                                                                                                                                                                                                 
     778               0 :             return trim($errors);                                                                                                                                                                                                                                                                                                                             
     779                 :         }                                                                                                                                                                                                                                                                                                                                                     
     780                 :         /**                                                                                                                                                                                                                                                                                                                                                   
     781                 :          * Erstellt den grundlegenden Datenbankeintrag für das Dokument. Gesetzt wird                                                                                                                                                                                                                                                                        
     782                 :          * nur die Phasen-ID, die anderen Felder werden mit ihren Standardwerten belegt.                                                                                                                                                                                                                                                                      
     783                 :          *                                                                                                                                                                                                                                                                                                                                                    
     784                 :          * @access private                                                                                                                                                                                                                                                                                                                                    
     785                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
     786                 :          */                                                                                                                                                                                                                                                                                                                                                   
     787                 :         function createDocument() {                                                                                                                                                                                                                                                                                                                           
     788               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
     789               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
     790               0 :             $db->query("INSERT INTO {$dbp}planspiel_document (phase_id) VALUES ('$this->phaseID')");                                                                                                                                                                                                                                                          
     791               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
     792               0 :                 $this->ID = $db->insert_id;                                                                                                                                                                                                                                                                                                                   
     793               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
     794                 :             }                                                                                                                                                                                                                                                                                                                                                 
     795               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
     796                 :         }                                                                                                                                                                                                                                                                                                                                                     
     797                 :         /**                                                                                                                                                                                                                                                                                                                                                   
     798                 :          * Löscht dieses Dokument.                                                                                                                                                                                                                                                                                                                           
     799                 :          *                                                                                                                                                                                                                                                                                                                                                    
     800                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
     801                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
     802                 :          */                                                                                                                                                                                                                                                                                                                                                   
     803                 :         function deleteDocument() {                                                                                                                                                                                                                                                                                                                           
     804               0 :             global $db, $settings, $EZSQL_ERROR;                                                                                                                                                                                                                                                                                                              
     805               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
     806               0 :             $errorCount = count($EZSQL_ERROR);                                                                                                                                                                                                                                                                                                                
     807               0 :             $db->query("DELETE FROM {$dbp}planspiel_document WHERE id='$this->ID'");                                                                                                                                                                                                                                                                          
     808               0 :             if (count($EZSQL_ERROR) > $errorCount) {                                                                                                                                                                                                                                                                                                          
     809               0 :                 return false;                                                                                                                                                                                                                                                                                                                                 
     810                 :             }                                                                                                                                                                                                                                                                                                                                                 
     811               0 :             $this->setDefaultValues($this->phaseID);                                                                                                                                                                                                                                                                                                          
     812               0 :             return true;                                                                                                                                                                                                                                                                                                                                      
     813                 :         }                                                                                                                                                                                                                                                                                                                                                     
     814                 :         /**                                                                                                                                                                                                                                                                                                                                                   
     815                 :          * Überprüft den übergebenen Namen auf Gültigkeit.                                                                                                                                                                                                                                                                                                
     816                 :          *                                                                                                                                                                                                                                                                                                                                                    
     817                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
     818                 :          * @param string $name Der zu überprüfende String                                                                                                                                                                                                                                                                                                   
     819                 :          * @return mixed String mit Fehlerangabe oder true bei Erfolg                                                                                                                                                                                                                                                                                         
     820                 :          */                                                                                                                                                                                                                                                                                                                                                   
     821                 :         function validateName($name) {                                                                                                                                                                                                                                                                                                                        
     822               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
     823               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
     824               0 :             $name = trim(Data::gpcUnescape($name));                                                                                                                                                                                                                                                                                                           
     825               0 :             if (empty($name)) {                                                                                                                                                                                                                                                                                                                               
     826               0 :                 return "Der Name wurde nicht angegeben.";                                                                                                                                                                                                                                                                                                     
     827                 :             }                                                                                                                                                                                                                                                                                                                                                 
     828               0 :             if (strlen($name) > 100) {                                                                                                                                                                                                                                                                                                                        
     829               0 :                 return "Der Name ist zu lang.";                                                                                                                                                                                                                                                                                                               
     830                 :             }                                                                                                                                                                                                                                                                                                                                                 
     831               0 :             if ($this->ID == 0 && $db->get_var("SELECT COUNT(*) FROM {$dbp}planspiel_document WHERE phase_id='$this->phaseID' AND name='".Data::toMysql($name, false) ."'")) {                                                                                                                                                                                
     832               0 :                 return "Der Name ist in dieser Phase bereits vergeben.";                                                                                                                                                                                                                                                                                      
     833                 :             }                                                                                                                                                                                                                                                                                                                                                 
     834               0 :             return true;                                                                                                                                                                                                                                                                                                                                      
     835                 :         }                                                                                                                                                                                                                                                                                                                                                     
     836                 :                                                                                                                                                                                                                                                                                                                                                               
     837                 :         function validateDeadline($deadline) {                                                                                                                                                                                                                                                                                                                
     838                 :                                                                                                                                                                                                                                                                                                                                                               
     839               0 :             if ($this->deadline == $deadline) {                                                                                                                                                                                                                                                                                                               
     840               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
     841                 :             }                                                                                                                                                                                                                                                                                                                                                 
     842                 :                                                                                                                                                                                                                                                                                                                                                               
     843               0 :             $date = getdate(time());                                                                                                                                                                                                                                                                                                                          
     844               0 :             $tomorrow = mktime(23, 59, 59, $date["mon"], $date["mday"], $date["year"]);                                                                                                                                                                                                                                                                       
     845               0 :             if ($deadline < $tomorrow) {                                                                                                                                                                                                                                                                                                                      
     846               0 :                 return "Die Deadline muss mindestens einen Tag in der Zukunft liegen.";                                                                                                                                                                                                                                                                       
     847                 :             }                                                                                                                                                                                                                                                                                                                                                 
     848               0 :             return true;                                                                                                                                                                                                                                                                                                                                      
     849                 :         }                                                                                                                                                                                                                                                                                                                                                     
     850                 :                                                                                                                                                                                                                                                                                                                                                               
     851                 :                                                                                                                                                                                                                                                                                                                                                               
     852                 :         /**                                                                                                                                                                                                                                                                                                                                                   
     853                 :          * Überprüft die Angabe des Dokumenttyps auf Gültigkeit.                                                                                                                                                                                                                                                                                           
     854                 :          * Ist die Typ-ID = 0, wird ein neuer Typ angelegt.                                                                                                                                                                                                                                                                                                   
     855                 :          *                                                                                                                                                                                                                                                                                                                                                    
     856                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
     857                 :          * @param int $typeID ID des Dokumenttyps, 0 für neu anzulegenden Typ                                                                                                                                                                                                                                                                                
     858                 :          * @param string $newTypeName Name für den neuen Dokumenttyp                                                                                                                                                                                                                                                                                         
     859                 :          * @return mixed String mit Fehlerangabe oder true bei Erfolg                                                                                                                                                                                                                                                                                         
     860                 :          */                                                                                                                                                                                                                                                                                                                                                   
     861                 :         function validateDocumentType($typeID, $newTypeName = "") {                                                                                                                                                                                                                                                                                           
     862               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
     863               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
     864               0 :             $name = trim($newTypeName);                                                                                                                                                                                                                                                                                                                       
     865               0 :             if ($typeID == 0) {                                                                                                                                                                                                                                                                                                                               
     866               0 :                 if (empty($name)) {                                                                                                                                                                                                                                                                                                                           
     867               0 :                     return "Es wurde kein neuer Dokumenttyp angegeben.";                                                                                                                                                                                                                                                                                      
     868                 :                 }                                                                                                                                                                                                                                                                                                                                             
     869               0 :                 if (strlen($name) > 100) {                                                                                                                                                                                                                                                                                                                    
     870               0 :                     return "Der neue Dokumenttyp-Name ist zu lang.";                                                                                                                                                                                                                                                                                          
     871                 :                 }                                                                                                                                                                                                                                                                                                                                             
     872               0 :                 if (!preg_match("/^[a-z0-9\-\. äöüßÄÖÜ]+$/i", $name)) {                                                                                                                                                                                                                                                                                
     873               0 :                     return "Der neue Dokumenttyp-Name enthält ungültige Zeichen.";                                                                                                                                                                                                                                                                          
     874                 :                 }                                                                                                                                                                                                                                                                                                                                             
     875               0 :             } else {                                                                                                                                                                                                                                                                                                                                          
     876               0 :                 $IDs = $db->get_col("SELECT id FROM {$dbp}planspiel_doc_type");                                                                                                                                                                                                                                                                               
     877               0 :                 if (!in_array($typeID, $IDs) && empty($name)) {                                                                                                                                                                                                                                                                                               
     878               0 :                     return "Ungültige Dokumenttyp-ID.";                                                                                                                                                                                                                                                                                                      
     879                 :                 }                                                                                                                                                                                                                                                                                                                                             
     880                 :             }                                                                                                                                                                                                                                                                                                                                                 
     881               0 :             return true;                                                                                                                                                                                                                                                                                                                                      
     882                 :         }                                                                                                                                                                                                                                                                                                                                                     
     883                 :         /**                                                                                                                                                                                                                                                                                                                                                   
     884                 :          * Überprüft die übergebene Vorlagen-ID auf Gültigkeit.                                                                                                                                                                                                                                                                                           
     885                 :          *                                                                                                                                                                                                                                                                                                                                                    
     886                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
     887                 :          * @param int $fileID Die zu überprüfende ID                                                                                                                                                                                                                                                                                                        
     888                 :          * @return mixed String mit Fehlerangabe oder true bei Erfolg                                                                                                                                                                                                                                                                                         
     889                 :          */                                                                                                                                                                                                                                                                                                                                                   
     890                 :         function validateTemplateID($fileID) {                                                                                                                                                                                                                                                                                                                
     891               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
     892               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
     893               0 :             if ($fileID == 0) {                                                                                                                                                                                                                                                                                                                               
     894               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
     895                 :             }                                                                                                                                                                                                                                                                                                                                                 
     896               0 :             $templates = $db->get_col("SELECT fileID FROM {$dbp}filelist JOIN {$dbp}planspiel ON parent_object=template_folder WHERE id='$this->planspielID' AND type='file'");                                                                                                                                                                               
     897               0 :             if (!in_array($fileID, $templates)) {                                                                                                                                                                                                                                                                                                             
     898               0 :                 return "Datei-ID der Vorlage ungültig.";                                                                                                                                                                                                                                                                                                     
     899                 :             }                                                                                                                                                                                                                                                                                                                                                 
     900               0 :             return true;                                                                                                                                                                                                                                                                                                                                      
     901                 :         }                                                                                                                                                                                                                                                                                                                                                     
     902                 :         /**                                                                                                                                                                                                                                                                                                                                                   
     903                 :          * Überprüft die übergebene Verzeichnis-ID auf Gültigkeit.                                                                                                                                                                                                                                                                                        
     904                 :          *                                                                                                                                                                                                                                                                                                                                                    
     905                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
     906                 :          * @param int $folderID Die zu überprüfende ID                                                                                                                                                                                                                                                                                                      
     907                 :          * @return mixed String mit Fehlerangabe oder true bei Erfolg                                                                                                                                                                                                                                                                                         
     908                 :          */                                                                                                                                                                                                                                                                                                                                                   
     909                 :         function validateFolderID($folderID) {                                                                                                                                                                                                                                                                                                                
     910               0 :             if (empty($folderID)) {                                                                                                                                                                                                                                                                                                                           
     911               0 :                 return "Es wurde kein Ablage-Ordner angegeben.";                                                                                                                                                                                                                                                                                              
     912                 :             }                                                                                                                                                                                                                                                                                                                                                 
     913               0 :             $filem = new Insert();                                                                                                                                                                                                                                                                                                                            
     914               0 :             $folders = array();                                                                                                                                                                                                                                                                                                                               
     915               0 :             $count = $filem->printSubFolder(0, "", $folders, 0, "");                                                                                                                                                                                                                                                                                          
     916               0 :             foreach($folders as $folder) {                                                                                                                                                                                                                                                                                                                    
     917               0 :                 if ($folder[1] == $folderID) {                                                                                                                                                                                                                                                                                                                
     918               0 :                     return true;                                                                                                                                                                                                                                                                                                                              
     919                 :                 }                                                                                                                                                                                                                                                                                                                                             
     920               0 :             }                                                                                                                                                                                                                                                                                                                                                 
     921               0 :             return "Der Ablage-Ordner ist ungültig.";                                                                                                                                                                                                                                                                                                        
     922                 :         }                                                                                                                                                                                                                                                                                                                                                     
     923                 :         /**                                                                                                                                                                                                                                                                                                                                                   
     924                 :          * Überprüft die übergebene User-ID auf Gültigkeit.                                                                                                                                                                                                                                                                                               
     925                 :          *                                                                                                                                                                                                                                                                                                                                                    
     926                 :          * @access private                                                                                                                                                                                                                                                                                                                                    
     927                 :          * @param int $userID Die zu überprüfende ID                                                                                                                                                                                                                                                                                                        
     928                 :          * @return mixed String mit Fehlerangabe oder true bei Erfolg                                                                                                                                                                                                                                                                                         
     929                 :          */                                                                                                                                                                                                                                                                                                                                                   
     930                 :         function validateUserID($userID) {                                                                                                                                                                                                                                                                                                                    
     931               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
     932               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
     933               0 :             $users = $db->get_col("SELECT userID FROM {$dbp}user_course WHERE courseID='$this->courseID'");                                                                                                                                                                                                                                                   
     934               0 :             return in_array($userID, $users);                                                                                                                                                                                                                                                                                                                 
     935                 :         }                                                                                                                                                                                                                                                                                                                                                     
     936                 :         /**                                                                                                                                                                                                                                                                                                                                                   
     937                 :          * Überprüft die übergebene User-ID auf Gültigkeit.                                                                                                                                                                                                                                                                                               
     938                 :          *                                                                                                                                                                                                                                                                                                                                                    
     939                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
     940                 :          * @param int $userID Die zu überprüfende ID                                                                                                                                                                                                                                                                                                        
     941                 :          * @return mixed String mit Fehlerangabe oder true bei Erfolg                                                                                                                                                                                                                                                                                         
     942                 :          */                                                                                                                                                                                                                                                                                                                                                   
     943                 :         function validateEditorUserID($userID) {                                                                                                                                                                                                                                                                                                              
     944               0 :             if (!$this->validateUserID($userID)) {                                                                                                                                                                                                                                                                                                            
     945               0 :                 return "Die User-ID des Bearbeiters ist ungültig.";                                                                                                                                                                                                                                                                                          
     946                 :             }                                                                                                                                                                                                                                                                                                                                                 
     947               0 :             return true;                                                                                                                                                                                                                                                                                                                                      
     948                 :         }                                                                                                                                                                                                                                                                                                                                                     
     949                 :         /**                                                                                                                                                                                                                                                                                                                                                   
     950                 :          * Überprüft die übergebene User-ID auf Gültigkeit.                                                                                                                                                                                                                                                                                               
     951                 :          *                                                                                                                                                                                                                                                                                                                                                    
     952                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
     953                 :          * @param int $userID Die zu überprüfende ID                                                                                                                                                                                                                                                                                                        
     954                 :          * @return mixed String mit Fehlerangabe oder true bei Erfolg                                                                                                                                                                                                                                                                                         
     955                 :          */                                                                                                                                                                                                                                                                                                                                                   
     956                 :         function validateReviewerUserID($userID) {                                                                                                                                                                                                                                                                                                            
     957               0 :             if (!$this->validateUserID($userID)) {                                                                                                                                                                                                                                                                                                            
     958               0 :                 return "Die User-ID des Reviewers ist ungültig.";                                                                                                                                                                                                                                                                                            
     959                 :             }                                                                                                                                                                                                                                                                                                                                                 
     960               0 :             return true;                                                                                                                                                                                                                                                                                                                                      
     961                 :         }                                                                                                                                                                                                                                                                                                                                                     
     962                 :          /* Überprüft die übergebene User-ID auf Gültigkeit.                                                                                                                                                                                                                                                                                              
     963                 :          *                                                                                                                                                                                                                                                                                                                                                    
     964                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
     965                 :          * @param int $userID Die zu überprüfende ID                                                                                                                                                                                                                                                                                                        
     966                 :          * @return mixed String mit Fehlerangabe oder true bei Erfolg                                                                                                                                                                                                                                                                                         
     967                 :          */                                                                                                                                                                                                                                                                                                                                                   
     968                 :         function validateReviewer($reviewerID, $editorID) {                                                                                                                                                                                                                                                                                                   
     969               0 :             if ($reviewerID == $editorID) {                                                                                                                                                                                                                                                                                                                   
     970               0 :                 return "Der Bearbeiter kann nicht gleichzeitig Reviewer sein.";                                                                                                                                                                                                                                                                               
     971                 :             }                                                                                                                                                                                                                                                                                                                                                 
     972               0 :             return true;                                                                                                                                                                                                                                                                                                                                      
     973                 :         }                                                                                                                                                                                                                                                                                                                                                     
     974                 :         /**                                                                                                                                                                                                                                                                                                                                                   
     975                 :          * Überprüft den übergebenen Timestamp auf Gültigkeit.                                                                                                                                                                                                                                                                                            
     976                 :          *                                                                                                                                                                                                                                                                                                                                                    
     977                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
     978                 :          * @param int $ts Der zu überprüfende Timestamp                                                                                                                                                                                                                                                                                                     
     979                 :          * @return mixed String mit Fehlerangabe oder true bei Erfolg                                                                                                                                                                                                                                                                                         
     980                 :          */                                                                                                                                                                                                                                                                                                                                                   
     981                 :         function validateReviseUntilDate($ts) {                                                                                                                                                                                                                                                                                                               
     982               0 :             $date = getdate(time() +24*3600);                                                                                                                                                                                                                                                                                                                 
     983               0 :             $tomorrow = mktime(23, 59, 59, $date["mon"], $date["mday"], $date["year"]);                                                                                                                                                                                                                                                                       
     984               0 :             if ($ts < $tomorrow) {                                                                                                                                                                                                                                                                                                                            
     985               0 :                 return "Das Überarbeitungs-Datum muss mindestens einen Tag in der Zukunft liegen.";                                                                                                                                                                                                                                                          
     986                 :             }                                                                                                                                                                                                                                                                                                                                                 
     987               0 :             return true;                                                                                                                                                                                                                                                                                                                                      
     988                 :         }                                                                                                                                                                                                                                                                                                                                                     
     989                 :         /**                                                                                                                                                                                                                                                                                                                                                   
     990                 :          * Überprüft die übergebenen Personentage auf Gültigkeit.                                                                                                                                                                                                                                                                                         
     991                 :          *                                                                                                                                                                                                                                                                                                                                                    
     992                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
     993                 :          * @param float $days Die zu überprüfende Tagesanzahl                                                                                                                                                                                                                                                                                               
     994                 :          * @return mixed String mit Fehlerangabe oder true bei Erfolg                                                                                                                                                                                                                                                                                         
     995                 :          */                                                                                                                                                                                                                                                                                                                                                   
     996                 :         function validateEstimatedEffort(&$days) {                                                                                                                                                                                                                                                                                                            
     997               0 :             if (strpos($days, ",")) {                                                                                                                                                                                                                                                                                                                         
     998               0 :                 $days = str_replace(",", ".", $days);                                                                                                                                                                                                                                                                                                         
     999               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1000               0 :             if (is_numeric($days) && $days >= 0 && $days < 100) {                                                                                                                                                                                                                                                                                             
    1001               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1002                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1003               0 :             return "Die Angabe des geschätzten Aufwandes ist ungültig.";                                                                                                                                                                                                                                                                                    
    1004                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1005                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1006                 :          * Überprüft die übergebenen Personentage auf Gültigkeit.                                                                                                                                                                                                                                                                                         
    1007                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1008                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1009                 :          * @param float $days Die zu überprüfende Tagesanzahl                                                                                                                                                                                                                                                                                               
    1010                 :          * @return mixed String mit Fehlerangabe oder true bei Erfolg                                                                                                                                                                                                                                                                                         
    1011                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1012                 :         function validateDaysSpent(&$days) {                                                                                                                                                                                                                                                                                                                  
    1013               0 :             if (strpos($days, ",")) {                                                                                                                                                                                                                                                                                                                         
    1014               0 :                 $days = str_replace(",", ".", $days);                                                                                                                                                                                                                                                                                                         
    1015               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1016               0 :             if (is_numeric($days) && $days >= 0 && $days < 100) {                                                                                                                                                                                                                                                                                             
    1017               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1018                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1019               0 :             return "Die Angabe des bisherigen Aufwandes ist ungültig.";                                                                                                                                                                                                                                                                                      
    1020                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1021                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1022                 :          * Überprüft die übergebenen Personentage auf Gültigkeit.                                                                                                                                                                                                                                                                                         
    1023                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1024                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1025                 :          * @param float $days Die zu überprüfende Tagesanzahl                                                                                                                                                                                                                                                                                               
    1026                 :          * @return mixed String mit Fehlerangabe oder true bei Erfolg                                                                                                                                                                                                                                                                                         
    1027                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1028                 :         function validateETC(&$days) {                                                                                                                                                                                                                                                                                                                        
    1029               0 :             if (strpos($days, ",")) {                                                                                                                                                                                                                                                                                                                         
    1030               0 :                 $days = str_replace(",", ".", $days);                                                                                                                                                                                                                                                                                                         
    1031               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1032               0 :             if (is_numeric($days) && $days >= 0 && $days < 100) {                                                                                                                                                                                                                                                                                             
    1033               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1034                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1035               0 :             return "Die Angabe des ETC ist ungültig.";                                                                                                                                                                                                                                                                                                       
    1036                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1037                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1038                 :          * Speichert den übergebenen String als neuen Namen dieses Dokuments.                                                                                                                                                                                                                                                                                
    1039                 :          * Der String sollte vorher mit der Methode validateName() validiert worden                                                                                                                                                                                                                                                                           
    1040                 :          * sein!                                                                                                                                                                                                                                                                                                                                              
    1041                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1042                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1043                 :          * @param string $name Zu speichernder Name                                                                                                                                                                                                                                                                                                           
    1044                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1045                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1046                 :         function setName($name) {                                                                                                                                                                                                                                                                                                                             
    1047               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1048               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1049               0 :             $name = trim($name);                                                                                                                                                                                                                                                                                                                              
    1050               0 :             if ($this->name == Data::gpcUnescape($name)) {                                                                                                                                                                                                                                                                                                    
    1051               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1052                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1053               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1054               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1055               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1056                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1057               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1058               0 :             $db->query("UPDATE {$dbp}planspiel_document SET name='".Data::toMysql($name) ."' WHERE id='$this->ID'");                                                                                                                                                                                                                                          
    1059               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1060               0 :                 $this->name = Data::gpcUnescape($name);                                                                                                                                                                                                                                                                                                       
    1061               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1062                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1063               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1064                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1065                 :                                                                                                                                                                                                                                                                                                                                                               
    1066                 :         function setDeadline($deadline) {                                                                                                                                                                                                                                                                                                                     
    1067               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1068               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1069                 :                                                                                                                                                                                                                                                                                                                                                               
    1070               0 :             if ($this->deadline == $deadline) {                                                                                                                                                                                                                                                                                                               
    1071               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1072                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1073               0 :             $db->query("UPDATE {$dbp}planspiel_document SET deadline='$deadline' WHERE id='$this->ID'");                                                                                                                                                                                                                                                      
    1074               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1075               0 :                 $this->deadline = $deadline;                                                                                                                                                                                                                                                                                                                  
    1076               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1077                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1078               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1079                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1080                 :                                                                                                                                                                                                                                                                                                                                                               
    1081                 :                                                                                                                                                                                                                                                                                                                                                               
    1082                 :                                                                                                                                                                                                                                                                                                                                                               
    1083                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1084                 :          * Speichert den übergebenen String als neue Beschreibung dieses Dokuments.                                                                                                                                                                                                                                                                          
    1085                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1086                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1087                 :          * @param string $desc Zu speichernde Beschreibung                                                                                                                                                                                                                                                                                                    
    1088                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1089                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1090                 :         function setDescription($desc) {                                                                                                                                                                                                                                                                                                                      
    1091               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1092               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1093               0 :             $desc = trim($desc);                                                                                                                                                                                                                                                                                                                              
    1094               0 :             if ($this->description == Data::gpcUnescape($desc)) {                                                                                                                                                                                                                                                                                             
    1095               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1096                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1097               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1098               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1099               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1100                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1101               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1102               0 :             if (empty($desc)) {                                                                                                                                                                                                                                                                                                                               
    1103               0 :                 $descSQL = "NULL";                                                                                                                                                                                                                                                                                                                            
    1104               0 :             } else {                                                                                                                                                                                                                                                                                                                                          
    1105               0 :                 $descSQL = "'".Data::toMysql($desc) ."'";                                                                                                                                                                                                                                                                                                     
    1106                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1107               0 :             $db->query("UPDATE {$dbp}planspiel_document SET description=$descSQL WHERE id='$this->ID'");                                                                                                                                                                                                                                                      
    1108               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1109               0 :                 $this->description = Data::gpcUnescape($desc);                                                                                                                                                                                                                                                                                                
    1110               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1111                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1112               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1113                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1114                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1115                 :          * Speichert die übergebene ID (> 0) als neuen Typ dieses Dokuments oder legt einen                                                                                                                                                                                                                                                                  
    1116                 :          * neuen Dokumenttyp an (ID = 0).                                                                                                                                                                                                                                                                                                                     
    1117                 :          * Der Typ sollte vorher mit der Methode validateDocumentType() validiert worden sein!                                                                                                                                                                                                                                                                
    1118                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1119                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1120                 :          * @param int $typeID ID des Dokumenttyps, 0 für neu anzulegenden Typ                                                                                                                                                                                                                                                                                
    1121                 :          * @param string $newTypeName Name für den neuen Dokumenttyp                                                                                                                                                                                                                                                                                         
    1122                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1123                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1124                 :         function setDocumentType($typeID, $newTypeName = "") {                                                                                                                                                                                                                                                                                                
    1125               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1126               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1127               0 :             $newTypeName = trim($newTypeName);                                                                                                                                                                                                                                                                                                                
    1128               0 :             $typeID = trim($typeID);                                                                                                                                                                                                                                                                                                                          
    1129               0 :             if ($typeID > 0 && $this->type == Data::gpcUnescape($typeID)) {                                                                                                                                                                                                                                                                                   
    1130               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1131                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1132               0 :             if ($typeID == 0 && empty($newTypeName)) {                                                                                                                                                                                                                                                                                                        
    1133               0 :                 return false;                                                                                                                                                                                                                                                                                                                                 
    1134                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1135               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1136               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1137               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1138                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1139               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1140               0 :             if ($typeID == 0) {                                                                                                                                                                                                                                                                                                                               
    1141               0 :                 $tID = $db->get_var("SELECT id FROM {$dbp}planspiel_doc_type WHERE name='".Data::toMysql($newTypeName) ."'");                                                                                                                                                                                                                                 
    1142               0 :                 if ($db->num_rows) {                                                                                                                                                                                                                                                                                                                          
    1143               0 :                     $typeID = $tID;                                                                                                                                                                                                                                                                                                                           
    1144               0 :                 } else {                                                                                                                                                                                                                                                                                                                                      
    1145               0 :                     $db->query("INSERT INTO {$dbp}planspiel_doc_type (name) VALUES ('".Data::toMysql($newTypeName) ."')");                                                                                                                                                                                                                                    
    1146               0 :                     if (!$db->rows_affected) {                                                                                                                                                                                                                                                                                                                
    1147               0 :                         return false;                                                                                                                                                                                                                                                                                                                         
    1148                 :                     }                                                                                                                                                                                                                                                                                                                                         
    1149               0 :                     $typeID = $db->insert_id;                                                                                                                                                                                                                                                                                                                 
    1150                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1151               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1152               0 :             $db->query("UPDATE {$dbp}planspiel_document SET type_of='".Data::toMysql($typeID) ."' WHERE id='$this->ID'");                                                                                                                                                                                                                                     
    1153               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1154               0 :                 $this->type = intval($typeID);                                                                                                                                                                                                                                                                                                                
    1155               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1156                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1157               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1158                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1159                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1160                 :          * Speichert die übergebene ID als neue Vorlage für dieses Dokument.                                                                                                                                                                                                                                                                                
    1161                 :          * Die ID sollte vorher mit der Methode validateTemplateID() validiert worden sein!                                                                                                                                                                                                                                                                   
    1162                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1163                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1164                 :          * @param int $ID ID der Vorlage                                                                                                                                                                                                                                                                                                                      
    1165                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1166                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1167                 :         function setTemplateID($ID) {                                                                                                                                                                                                                                                                                                                         
    1168               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1169               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1170               0 :             $ID = trim($ID);                                                                                                                                                                                                                                                                                                                                  
    1171               0 :             if ($this->templateID == Data::gpcUnescape($ID)) {                                                                                                                                                                                                                                                                                                
    1172               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1173                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1174               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1175               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1176               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1177                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1178               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1179               0 :             $db->query("UPDATE {$dbp}planspiel_document SET template_id='".Data::toMysql($ID) ."' WHERE id='$this->ID'");                                                                                                                                                                                                                                     
    1180               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1181               0 :                 $this->templateID = intval($ID);                                                                                                                                                                                                                                                                                                              
    1182               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1183                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1184               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1185                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1186                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1187                 :          * Speichert die übergebene ID als neuen Ablage-Ordner für dieses Dokument.                                                                                                                                                                                                                                                                         
    1188                 :          * Die ID sollte vorher mit der Methode validateFolderID() validiert worden sein!                                                                                                                                                                                                                                                                     
    1189                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1190                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1191                 :          * @param int $ID ID des Verzeichnisses                                                                                                                                                                                                                                                                                                               
    1192                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1193                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1194                 :         function setFolderID($ID) {                                                                                                                                                                                                                                                                                                                           
    1195               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1196               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1197               0 :             $ID = trim($ID);                                                                                                                                                                                                                                                                                                                                  
    1198               0 :             if ($this->folderID == Data::gpcUnescape($ID)) {                                                                                                                                                                                                                                                                                                  
    1199               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1200                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1201               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1202               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1203               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1204                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1205               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1206               0 :             $db->query("UPDATE {$dbp}planspiel_document SET save_to_folder='".Data::toMysql($ID) ."' WHERE id='$this->ID'");                                                                                                                                                                                                                                  
    1207               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1208               0 :                 $this->folderID = intval($ID);                                                                                                                                                                                                                                                                                                                
    1209               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1210                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1211               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1212                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1213                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1214                 :          * Speichert die übergebene User-ID als neuen Bearbeiter für dieses Dokument.                                                                                                                                                                                                                                                                       
    1215                 :          * Die ID sollte vorher mit der Methode validateEditorUserID() validiert worden sein!                                                                                                                                                                                                                                                                 
    1216                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1217                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1218                 :          * @param int $ID User-ID des Bearbeiters                                                                                                                                                                                                                                                                                                             
    1219                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1220                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1221                 :         function setEditorUserID($ID) {                                                                                                                                                                                                                                                                                                                       
    1222               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1223               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1224               0 :             $ID = trim($ID);                                                                                                                                                                                                                                                                                                                                  
    1225               0 :             if ($this->editorUserID == Data::gpcUnescape($ID)) {                                                                                                                                                                                                                                                                                              
    1226               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1227                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1228               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1229               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1230               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1231                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1232               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1233               0 :             $db->query("UPDATE {$dbp}planspiel_document SET editor_id='".Data::toMysql($ID) ."' WHERE id='$this->ID'");                                                                                                                                                                                                                                       
    1234               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1235               0 :                 $newUserID = intval(Data::gpcUnescape($ID));                                                                                                                                                                                                                                                                                                  
    1236               0 :                 $roles = PlanspielList::getPlanspielRoleIDs($this->courseID);                                                                                                                                                                                                                                                                                 
    1237               0 :                 $urm = new UserRoleManagement($this->courseID);                                                                                                                                                                                                                                                                                               
    1238               0 :                 if (count(PlanspielList::getPlanspielWhereEditor($this->courseID, $this->editorUserID)) == 0) {                                                                                                                                                                                                                                               
    1239               0 :                     $urm->unsetRoleForUser($this->editorUserID, $roles["editor"]);                                                                                                                                                                                                                                                                            
    1240               0 :                 }                                                                                                                                                                                                                                                                                                                                             
    1241               0 :                 $urm->setRoleForUser($newUserID, $roles["editor"]);                                                                                                                                                                                                                                                                                           
    1242               0 :                 $this->editorUserID = $newUserID;                                                                                                                                                                                                                                                                                                             
    1243               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1244                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1245               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1246                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1247                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1248                 :          * Speichert die übergebene User-ID als neuen Reviewer für dieses Dokument.                                                                                                                                                                                                                                                                         
    1249                 :          * Die ID sollte vorher mit der Methode validateReviewerUserID() validiert worden sein!                                                                                                                                                                                                                                                               
    1250                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1251                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1252                 :          * @param int $ID User-ID des Reviewers                                                                                                                                                                                                                                                                                                               
    1253                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1254                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1255                 :         function setReviewerUserID($ID) {                                                                                                                                                                                                                                                                                                                     
    1256               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1257               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1258               0 :             $ID = trim($ID);                                                                                                                                                                                                                                                                                                                                  
    1259               0 :             if ($this->reviewerUserID == Data::gpcUnescape($ID)) {                                                                                                                                                                                                                                                                                            
    1260               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1261                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1262               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1263               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1264               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1265                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1266               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1267               0 :             $db->query("UPDATE {$dbp}planspiel_document SET reviewer_id='".Data::toMysql($ID) ."' WHERE id='$this->ID'");                                                                                                                                                                                                                                     
    1268               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1269               0 :                 $newUserID = intval(Data::gpcUnescape($ID));                                                                                                                                                                                                                                                                                                  
    1270               0 :                 $roles = PlanspielList::getPlanspielRoleIDs($this->courseID);                                                                                                                                                                                                                                                                                 
    1271               0 :                 $urm = new UserRoleManagement($this->courseID);                                                                                                                                                                                                                                                                                               
    1272               0 :                 if (count(PlanspielList::getPlanspielWhereReviewer($this->courseID, $this->reviewerUserID)) == 0) {                                                                                                                                                                                                                                           
    1273               0 :                     $urm->unsetRoleForUser($this->reviewerUserID, $roles["reviewer"]);                                                                                                                                                                                                                                                                        
    1274               0 :                 }                                                                                                                                                                                                                                                                                                                                             
    1275               0 :                 $urm->setRoleForUser($newUserID, $roles["reviewer"]);                                                                                                                                                                                                                                                                                         
    1276               0 :                 $this->reviewerUserID = $newUserID;                                                                                                                                                                                                                                                                                                           
    1277               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1278                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1279               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1280                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1281                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1282                 :          * Speichert den übergebenen Timestamp und den Kommentar als neuen "Akzeptiert"-Status                                                                                                                                                                                                                                                               
    1283                 :          * für dieses Dokument.                                                                                                                                                                                                                                                                                                                              
    1284                 :          * Der Timestamp wird nur geändert, wenn sich der Kommentar auch geändert hat oder der Status                                                                                                                                                                                                                                                       
    1285                 :          * gesetzt oder aufgehoben wurde.                                                                                                                                                                                                                                                                                                                     
    1286                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1287                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1288                 :          * @param int $ts Timestamp                                                                                                                                                                                                                                                                                                                           
    1289                 :          * @param string $comment Kommentar                                                                                                                                                                                                                                                                                                                   
    1290                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1291                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1292                 :         function setAccepted($ts, $comment) {                                                                                                                                                                                                                                                                                                                 
    1293               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1294               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1295               0 :             $comment = trim($comment);                                                                                                                                                                                                                                                                                                                        
    1296               0 :             if (!(($this->acceptedSince == 0 && $ts > 0) || ($this->acceptedSince > 0 && $ts == 0)) && $this->acceptedComment == Data::gpcUnescape($comment)) {                                                                                                                                                                                               
    1297               0 :                 $ts = $this->acceptedSince; // Timestamp nicht ändern, wenn der Kommentar nicht geändert wird                                                                                                                                                                                                                                               
    1298                 :                                                                                                                                                                                                                                                                                                                                                               
    1299               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1300               0 :             if ($this->acceptedSince == $ts && $this->acceptedComment == Data::gpcUnescape($comment)) {                                                                                                                                                                                                                                                       
    1301               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1302                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1303               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1304               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1305               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1306                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1307               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1308               0 :             if (empty($comment)) {                                                                                                                                                                                                                                                                                                                            
    1309               0 :                 $commentSQL = "NULL";                                                                                                                                                                                                                                                                                                                         
    1310               0 :             } else {                                                                                                                                                                                                                                                                                                                                          
    1311               0 :                 $commentSQL = "'".Data::toMysql($comment) ."'";                                                                                                                                                                                                                                                                                               
    1312                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1313               0 :             $db->query("UPDATE {$dbp}planspiel_document SET accepted='$ts', accepted_comment=$commentSQL WHERE id='$this->ID'");                                                                                                                                                                                                                              
    1314               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1315               0 :                 $this->acceptedSince = intval($ts);                                                                                                                                                                                                                                                                                                           
    1316               0 :                 $this->acceptedComment = Data::gpcUnescape($comment);                                                                                                                                                                                                                                                                                         
    1317               0 :                 $phase = new Phase($this->phaseID);                                                                                                                                                                                                                                                                                                           
    1318               0 :                 $phase->setFinished($phase->getFinishedDocumentsCount() == $phase->getDocumentsCount());                                                                                                                                                                                                                                                      
    1319               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1320                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1321               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1322                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1323                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1324                 :          * Speichert den übergebenen Timestamp und den Kommentar als neuen "Überarbeitung erbeten"-Status                                                                                                                                                                                                                                                   
    1325                 :          * für dieses Dokument.                                                                                                                                                                                                                                                                                                                              
    1326                 :          * Der Timestamp wird nur geändert, wenn sich der Kommentar auch geändert hat oder der Status                                                                                                                                                                                                                                                       
    1327                 :          * gesetzt oder aufgehoben wurde.                                                                                                                                                                                                                                                                                                                     
    1328                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1329                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1330                 :          * @param int $ts Timestamp                                                                                                                                                                                                                                                                                                                           
    1331                 :          * @param int $until Timestamp der Deadline zur Überarbeitung                                                                                                                                                                                                                                                                                        
    1332                 :          * @param string $comment Kommentar                                                                                                                                                                                                                                                                                                                   
    1333                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1334                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1335                 :         function setReviseUntil($ts, $until, $comment) {                                                                                                                                                                                                                                                                                                      
    1336               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1337               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1338               0 :             $comment = trim($comment);                                                                                                                                                                                                                                                                                                                        
    1339               0 :             if (!(($this->reviseTS == 0 && $ts > 0) || ($this->reviseTS > 0 && $ts == 0)) && $this->reviseComment == Data::gpcUnescape($comment)) {                                                                                                                                                                                                           
    1340               0 :                 $ts = $this->reviseTS; // Timestamp nicht ändern, wenn der Kommentar nicht geändert wird                                                                                                                                                                                                                                                    
    1341                 :                                                                                                                                                                                                                                                                                                                                                               
    1342               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1343               0 :             if ($this->reviseUntil == $until && $this->reviseComment == Data::gpcUnescape($comment)) {                                                                                                                                                                                                                                                        
    1344               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1345                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1346               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1347               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1348               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1349                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1350               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1351               0 :             if (empty($comment)) {                                                                                                                                                                                                                                                                                                                            
    1352               0 :                 $commentSQL = "NULL";                                                                                                                                                                                                                                                                                                                         
    1353               0 :             } else {                                                                                                                                                                                                                                                                                                                                          
    1354               0 :                 $commentSQL = "'".Data::toMysql($comment) ."'";                                                                                                                                                                                                                                                                                               
    1355                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1356               0 :             $db->query("UPDATE {$dbp}planspiel_document SET revise_until='$until', revise_comment=$commentSQL, revise_ts='$ts' WHERE id='$this->ID'");                                                                                                                                                                                                        
    1357               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1358               0 :                 $this->reviseUntil = intval($until);                                                                                                                                                                                                                                                                                                          
    1359               0 :                 $this->reviseComment = Data::gpcUnescape($comment);                                                                                                                                                                                                                                                                                           
    1360               0 :                 $this->reviseTS = intval($ts);                                                                                                                                                                                                                                                                                                                
    1361               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1362                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1363               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1364                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1365                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1366                 :          * Speichert den übergebenen Timestamp und den Kommentar als neuen "Change Request"-Status                                                                                                                                                                                                                                                           
    1367                 :          * für dieses Dokument.                                                                                                                                                                                                                                                                                                                              
    1368                 :          * Der Timestamp wird nur geändert, wenn sich der Kommentar auch geändert hat oder der Status                                                                                                                                                                                                                                                       
    1369                 :          * gesetzt oder aufgehoben wurde.                                                                                                                                                                                                                                                                                                                     
    1370                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1371                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1372                 :          * @param int $ts Timestamp                                                                                                                                                                                                                                                                                                                           
    1373                 :          * @param string $comment Kommentar                                                                                                                                                                                                                                                                                                                   
    1374                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1375                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1376                 :         function setChangeRequest($ts, $comment) {                                                                                                                                                                                                                                                                                                            
    1377               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1378               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1379               0 :             $comment = trim($comment);                                                                                                                                                                                                                                                                                                                        
    1380               0 :             if (!(($this->changeRequestSince == 0 && $ts > 0) || ($this->changeRequestSince > 0 && $ts == 0)) && $this->changeRequestComment == Data::gpcUnescape($comment)) {                                                                                                                                                                                
    1381               0 :                 $ts = $this->changeRequestSince; // Timestamp nicht ändern, wenn der Kommentar nicht geändert wird                                                                                                                                                                                                                                          
    1382                 :                                                                                                                                                                                                                                                                                                                                                               
    1383               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1384               0 :             if ($this->changeRequestSince == $ts && $this->changeRequestComment == Data::gpcUnescape($comment)) {                                                                                                                                                                                                                                             
    1385               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1386                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1387               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1388               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1389               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1390                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1391               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1392               0 :             if (empty($comment)) {                                                                                                                                                                                                                                                                                                                            
    1393               0 :                 $commentSQL = "NULL";                                                                                                                                                                                                                                                                                                                         
    1394               0 :             } else {                                                                                                                                                                                                                                                                                                                                          
    1395               0 :                 $commentSQL = "'".Data::toMysql($comment) ."'";                                                                                                                                                                                                                                                                                               
    1396                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1397               0 :             $db->query("UPDATE {$dbp}planspiel_document SET change_request='$ts', change_req_comment=$commentSQL WHERE id='$this->ID'");                                                                                                                                                                                                                      
    1398               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1399               0 :                 $this->changeRequestSince = intval($ts);                                                                                                                                                                                                                                                                                                      
    1400               0 :                 $this->changeRequestComment = Data::gpcUnescape($comment);                                                                                                                                                                                                                                                                                    
    1401               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1402                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1403               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1404                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1405                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1406                 :          * Speichert die übergebene Zahl als neue Aufwandsabschätzung für dieses Dokument.                                                                                                                                                                                                                                                                 
    1407                 :          * Die Zahl sollte vorher mit der Methode validateEstimatedEffort() validiert worden sein!                                                                                                                                                                                                                                                            
    1408                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1409                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1410                 :          * @param float $days Anzahl Personentage                                                                                                                                                                                                                                                                                                             
    1411                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1412                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1413                 :         function setEstimatedEffort($days) {                                                                                                                                                                                                                                                                                                                  
    1414               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1415               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1416               0 :             $days = trim($days);                                                                                                                                                                                                                                                                                                                              
    1417               0 :             if ($this->estimatedEffort == Data::gpcUnescape($days)) {                                                                                                                                                                                                                                                                                         
    1418               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1419                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1420               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1421               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1422               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1423                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1424               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1425               0 :             $time = time();                                                                                                                                                                                                                                                                                                                                   
    1426               0 :             $db->query("UPDATE {$dbp}planspiel_document SET estimated_effort='".Data::toMysql($days) ."', estimated_effort_ts='$time' WHERE id='$this->ID'");                                                                                                                                                                                                 
    1427               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1428               0 :                 $this->estimatedEffort = floatval($days);                                                                                                                                                                                                                                                                                                     
    1429               0 :                 $this->estimatedEffortTS = $time;                                                                                                                                                                                                                                                                                                             
    1430               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1431                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1432               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1433                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1434                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1435                 :          * Speichert die übergebene Zahl als neue Angabe des bisherigen Aufwands für dieses Dokument.                                                                                                                                                                                                                                                       
    1436                 :          * Die Zahl sollte vorher mit der Methode validateDaysSpent() validiert worden sein!                                                                                                                                                                                                                                                                  
    1437                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1438                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1439                 :          * @param float $days Anzahl Personentage                                                                                                                                                                                                                                                                                                             
    1440                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1441                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1442                 :         function setDaysSpent($days) {                                                                                                                                                                                                                                                                                                                        
    1443               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1444               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1445               0 :             $days = trim($days);                                                                                                                                                                                                                                                                                                                              
    1446               0 :             if ($this->daysSpent == Data::gpcUnescape($days)) {                                                                                                                                                                                                                                                                                               
    1447               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1448                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1449               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1450               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1451               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1452                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1453               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1454               0 :             $time = time();                                                                                                                                                                                                                                                                                                                                   
    1455               0 :             $db->query("UPDATE {$dbp}planspiel_document SET days_spent='".Data::toMysql($days) ."', days_spent_ts='$time' WHERE id='$this->ID'");                                                                                                                                                                                                             
    1456               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1457               0 :                 $this->daysSpent = floatval($days);                                                                                                                                                                                                                                                                                                           
    1458               0 :                 $this->daysSpentTS = $time;                                                                                                                                                                                                                                                                                                                   
    1459               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1460                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1461               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1462                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1463                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1464                 :          * Speichert die übergebene Zahl als neuen ETC für dieses Dokument.                                                                                                                                                                                                                                                                                 
    1465                 :          * Die Zahl sollte vorher mit der Methode validateETC() validiert worden sein!                                                                                                                                                                                                                                                                        
    1466                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1467                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1468                 :          * @param float $days Anzahl Personentage                                                                                                                                                                                                                                                                                                             
    1469                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1470                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1471                 :         function setETC($days) {                                                                                                                                                                                                                                                                                                                              
    1472               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1473               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1474               0 :             $days = trim($days);                                                                                                                                                                                                                                                                                                                              
    1475               0 :             if ($this->etc == Data::gpcUnescape($days)) {                                                                                                                                                                                                                                                                                                     
    1476               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1477                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1478               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1479               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1480               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1481                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1482               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1483               0 :             $time = time();                                                                                                                                                                                                                                                                                                                                   
    1484               0 :             $db->query("UPDATE {$dbp}planspiel_document SET etc='".Data::toMysql($days) ."', etc_ts='$time' WHERE id='$this->ID'");                                                                                                                                                                                                                           
    1485               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1486               0 :                 $this->etc = floatval($days);                                                                                                                                                                                                                                                                                                                 
    1487               0 :                 $this->etcTS = $time;                                                                                                                                                                                                                                                                                                                         
    1488               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1489                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1490               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1491                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1492                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1493                 :          * Speichert den übergebenen Timestamp und den Kommentar als neuen "In Bearbeitung"-Status                                                                                                                                                                                                                                                           
    1494                 :          * für dieses Dokument.                                                                                                                                                                                                                                                                                                                              
    1495                 :          * Der Timestamp wird nur geändert, wenn sich der Kommentar auch geändert hat oder der Status                                                                                                                                                                                                                                                       
    1496                 :          * gesetzt oder aufgehoben wurde.                                                                                                                                                                                                                                                                                                                     
    1497                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1498                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1499                 :          * @param int $ts Timestamp                                                                                                                                                                                                                                                                                                                           
    1500                 :          * @param string $comment Kommentar                                                                                                                                                                                                                                                                                                                   
    1501                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1502                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1503                 :         function setInProgress($ts, $comment) {                                                                                                                                                                                                                                                                                                               
    1504               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1505               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1506               0 :             $comment = trim($comment);                                                                                                                                                                                                                                                                                                                        
    1507               0 :             if (!(($this->inProgressSince == 0 && $ts > 0) || ($this->inProgressSince > 0 && $ts == 0)) && $this->inProgressComment == Data::gpcUnescape($comment)) {                                                                                                                                                                                         
    1508               0 :                 $ts = $this->inProgressSince; // Timestamp nicht ändern, wenn der Kommentar nicht geändert wird                                                                                                                                                                                                                                             
    1509                 :                                                                                                                                                                                                                                                                                                                                                               
    1510               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1511               0 :             if ($this->inProgressSince == $ts && $this->inProgressComment == Data::gpcUnescape($comment)) {                                                                                                                                                                                                                                                   
    1512               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1513                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1514               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1515               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1516               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1517                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1518               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1519               0 :             if (empty($comment)) {                                                                                                                                                                                                                                                                                                                            
    1520               0 :                 $commentSQL = "NULL";                                                                                                                                                                                                                                                                                                                         
    1521               0 :             } else {                                                                                                                                                                                                                                                                                                                                          
    1522               0 :                 $commentSQL = "'".Data::toMysql($comment) ."'";                                                                                                                                                                                                                                                                                               
    1523                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1524               0 :             $db->query("UPDATE {$dbp}planspiel_document SET in_progress='$ts', progress_comment=$commentSQL WHERE id='$this->ID'");                                                                                                                                                                                                                           
    1525               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1526               0 :                 $this->inProgressSince = intval($ts);                                                                                                                                                                                                                                                                                                         
    1527               0 :                 $this->inProgressComment = Data::gpcUnescape($comment);                                                                                                                                                                                                                                                                                       
    1528               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1529                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1530               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1531                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1532                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1533                 :          * Speichert den übergebenen Timestamp und den Kommentar als neuen "Bereit zur Abnahme"-Status                                                                                                                                                                                                                                                       
    1534                 :          * für dieses Dokument.                                                                                                                                                                                                                                                                                                                              
    1535                 :          * Der Timestamp wird nur geändert, wenn sich der Kommentar auch geändert hat oder der Status                                                                                                                                                                                                                                                       
    1536                 :          * gesetzt oder aufgehoben wurde.                                                                                                                                                                                                                                                                                                                     
    1537                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1538                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1539                 :          * @param int $ts Timestamp                                                                                                                                                                                                                                                                                                                           
    1540                 :          * @param string $comment Kommentar                                                                                                                                                                                                                                                                                                                   
    1541                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1542                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1543                 :         function setReadyForApproval($ts, $comment) {                                                                                                                                                                                                                                                                                                         
    1544               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1545               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1546               0 :             $comment = trim($comment);                                                                                                                                                                                                                                                                                                                        
    1547               0 :             if (!(($this->readyForApprovalSince == 0 && $ts > 0) || ($this->readyForApprovalSince > 0 && $ts == 0)) && $this->readyForApprovalComment == Data::gpcUnescape($comment)) {                                                                                                                                                                       
    1548               0 :                 $ts = $this->readyForApprovalSince; // Timestamp nicht ändern, wenn der Kommentar nicht geändert wird                                                                                                                                                                                                                                       
    1549                 :                                                                                                                                                                                                                                                                                                                                                               
    1550               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1551               0 :             if ($this->readyForApprovalSince == $ts && $this->readyForApprovalComment == Data::gpcUnescape($comment)) {                                                                                                                                                                                                                                       
    1552               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1553                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1554               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1555               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1556               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1557                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1558               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1559               0 :             if (empty($comment)) {                                                                                                                                                                                                                                                                                                                            
    1560               0 :                 $commentSQL = "NULL";                                                                                                                                                                                                                                                                                                                         
    1561               0 :             } else {                                                                                                                                                                                                                                                                                                                                          
    1562               0 :                 $commentSQL = "'".Data::toMysql($comment) ."'";                                                                                                                                                                                                                                                                                               
    1563                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1564               0 :             $db->query("UPDATE {$dbp}planspiel_document SET ready_for_approval='$ts', approval_comment=$commentSQL WHERE id='$this->ID'");                                                                                                                                                                                                                    
    1565               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1566               0 :                 $this->readyForApprovalSince = intval($ts);                                                                                                                                                                                                                                                                                                   
    1567               0 :                 $this->readyForApprovalComment = Data::gpcUnescape($comment);                                                                                                                                                                                                                                                                                 
    1568               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1569                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1570               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1571                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1572                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1573                 :          * Speichert den übergebenen Timestamp und den Kommentar als neuen "Feedback erbeten"-Status                                                                                                                                                                                                                                                         
    1574                 :          * für dieses Dokument.                                                                                                                                                                                                                                                                                                                              
    1575                 :          * Der Timestamp wird nur geändert, wenn sich der Kommentar auch geändert hat oder der Status                                                                                                                                                                                                                                                       
    1576                 :          * gesetzt oder aufgehoben wurde.                                                                                                                                                                                                                                                                                                                     
    1577                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1578                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1579                 :          * @param int $ts Timestamp                                                                                                                                                                                                                                                                                                                           
    1580                 :          * @param string $comment Kommentar                                                                                                                                                                                                                                                                                                                   
    1581                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1582                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1583                 :         function setFeedbackRequest($ts, $comment) {                                                                                                                                                                                                                                                                                                          
    1584               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1585               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1586               0 :             $comment = trim($comment);                                                                                                                                                                                                                                                                                                                        
    1587               0 :             if (!(($this->feedbackRequestSince == 0 && $ts > 0) || ($this->feedbackRequestSince > 0 && $ts == 0)) && $this->feedbackRequestComment == Data::gpcUnescape($comment)) {                                                                                                                                                                          
    1588               0 :                 $ts = $this->feedbackRequestSince; // Timestamp nicht ändern, wenn der Kommentar nicht geändert wird                                                                                                                                                                                                                                        
    1589                 :                                                                                                                                                                                                                                                                                                                                                               
    1590               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1591               0 :             if ($this->feedbackRequestSince == $ts && $this->feedbackRequestComment == Data::gpcUnescape($comment)) {                                                                                                                                                                                                                                         
    1592               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1593                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1594               0 :             if ($this->ID == 0) {                                                                                                                                                                                                                                                                                                                             
    1595               0 :                 if (!$this->createDocument()) {                                                                                                                                                                                                                                                                                                               
    1596               0 :                     return false;                                                                                                                                                                                                                                                                                                                             
    1597                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1598               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1599               0 :             if (empty($comment)) {                                                                                                                                                                                                                                                                                                                            
    1600               0 :                 $commentSQL = "NULL";                                                                                                                                                                                                                                                                                                                         
    1601               0 :             } else {                                                                                                                                                                                                                                                                                                                                          
    1602               0 :                 $commentSQL = "'".Data::toMysql($comment) ."'";                                                                                                                                                                                                                                                                                               
    1603                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1604               0 :             $db->query("UPDATE {$dbp}planspiel_document SET feedback_requested='$ts', feedback_comment=$commentSQL WHERE id='$this->ID'");                                                                                                                                                                                                                    
    1605               0 :             if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                         
    1606               0 :                 $this->feedbackRequestSince = intval($ts);                                                                                                                                                                                                                                                                                                    
    1607               0 :                 $this->feedbackRequestComment = Data::gpcUnescape($comment);                                                                                                                                                                                                                                                                                  
    1608               0 :                 return true;                                                                                                                                                                                                                                                                                                                                  
    1609                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1610               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1611                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1612                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1613                 :          * Speichert eine hochgeladene Datei in den Ressourcen und setzt die Datei-ID dieses Dokuments.                                                                                                                                                                                                                                                       
    1614                 :          * Eine bereits zu diesem Dokument hochgeladene Datei wird vorher gelöscht.                                                                                                                                                                                                                                                                          
    1615                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1616                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1617                 :          * @return boolean Erfolgswert                                                                                                                                                                                                                                                                                                                        
    1618                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1619                 :         function setFile() {                                                                                                                                                                                                                                                                                                                                  
    1620               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1621               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1622               0 :             if ($this->fileID > 0) {                                                                                                                                                                                                                                                                                                                          
    1623                 :                 // Alte Datei löschen                                                                                                                                                                                                                                                                                                                        
    1624               0 :                 $filem = new Filemanager();                                                                                                                                                                                                                                                                                                                   
    1625               0 :                 $file = $db->get_row("SELECT * FROM {$dbp}filelist WHERE fileID='$this->fileID'");                                                                                                                                                                                                                                                            
    1626               0 :                 if (!is_null($file)) {                                                                                                                                                                                                                                                                                                                        
    1627               0 :                     $file->userID = $_SESSION["userid"]; // Gegen Probleme mit Zugriffsrechten                                                                                                                                                                                                                                                                
    1628               0 :                     $filem->runAction($file, 0, "delete_trueFile", $this->fileID, $this->folderID);                                                                                                                                                                                                                                                           
    1629               0 :                 }                                                                                                                                                                                                                                                                                                                                             
    1630                 :                 // Akzeptiert-Status wieder löschen                                                                                                                                                                                                                                                                                                          
    1631               0 :                 $this->setAccepted(0, "");                                                                                                                                                                                                                                                                                                                    
    1632               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1633               0 :             $insert = new Insert();                                                                                                                                                                                                                                                                                                                           
    1634               0 :             $data = array("link" => $_SESSION['userid'].time() .$_SESSION['course'], "name" => $this->name, "size" => $_FILES["upload"]["size"], "userID" => $_SESSION["userid"], "create_time" => time(), "courseID" => $this->courseID, "description" => $this->description, "type" => "file", "visible_type" => 1, // Sichtbarkeit: Alle                   
    1635               0 :             "start_time" => 0, "end_time" => 2147483647, "parent_object" => $this->folderID, "orig_filename" => $_FILES["upload"]["name"], "tmpfileTmpName" => $_FILES["upload"]["tmp_name"], "extension" => (string)substr(strrchr($_FILES["upload"]["name"], "."), 1, strlen($_FILES["upload"]["name"])), "tmpemail" => false, "tmpteacherEMail" => false,);
    1636               0 :             ob_start(); // Ausgabe der Insert-Klasse verwerfen                                                                                                                                                                                                                                                                                                
    1637               0 :             $fileID = $insert->resolveForm($data);                                                                                                                                                                                                                                                                                                            
    1638               0 :             ob_end_clean();                                                                                                                                                                                                                                                                                                                                   
    1639               0 :             if ($fileID) {                                                                                                                                                                                                                                                                                                                                    
    1640               0 :                 $db->query("UPDATE {$dbp}planspiel_document SET file_id='$fileID' WHERE id='$this->ID'");                                                                                                                                                                                                                                                     
    1641               0 :                 if ($db->rows_affected) {                                                                                                                                                                                                                                                                                                                     
    1642               0 :                     $this->fileID = intval($fileID);                                                                                                                                                                                                                                                                                                          
    1643               0 :                     return true;                                                                                                                                                                                                                                                                                                                              
    1644                 :                 }                                                                                                                                                                                                                                                                                                                                             
    1645               0 :             }                                                                                                                                                                                                                                                                                                                                                 
    1646               0 :             return false;                                                                                                                                                                                                                                                                                                                                     
    1647                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1648                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1649                 :          * Gibt die ID dieses Dokuments zurück.                                                                                                                                                                                                                                                                                                              
    1650                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1651                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1652                 :          * @return int ID des Dokuments                                                                                                                                                                                                                                                                                                                       
    1653                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1654                 :         function getID() {                                                                                                                                                                                                                                                                                                                                    
    1655               0 :             return $this->ID;                                                                                                                                                                                                                                                                                                                                 
    1656                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1657                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1658                 :          * Gibt den Namen dieses Dokuments zurück.                                                                                                                                                                                                                                                                                                           
    1659                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1660                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1661                 :          * @return string Name des Dokuments                                                                                                                                                                                                                                                                                                                  
    1662                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1663                 :         function getName() {                                                                                                                                                                                                                                                                                                                                  
    1664               0 :             return $this->name;                                                                                                                                                                                                                                                                                                                               
    1665                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1666                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1667                 :          * Gibt die Beschreibung dieses Dokuments zurück.                                                                                                                                                                                                                                                                                                    
    1668                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1669                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1670                 :          * @param boolean $bbcode Gibt an, ob BBCode im Text bereits umgewandelt werden soll.                                                                                                                                                                                                                                                                 
    1671                 :          * @return string Beschreibung des Dokuments                                                                                                                                                                                                                                                                                                          
    1672                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1673                 :         function getDescription($bbcode = true) {                                                                                                                                                                                                                                                                                                             
    1674               0 :             if ($bbcode) {                                                                                                                                                                                                                                                                                                                                    
    1675               0 :                 $bb = new BBCode();                                                                                                                                                                                                                                                                                                                           
    1676               0 :                 return $bb->parse($this->description);                                                                                                                                                                                                                                                                                                        
    1677                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1678               0 :             return $this->description;                                                                                                                                                                                                                                                                                                                        
    1679                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1680                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1681                 :          * Gibt den Kommentar zum Change Request dieses Dokuments zurück.                                                                                                                                                                                                                                                                                    
    1682                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1683                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1684                 :          * @param boolean $bbcode Gibt an, ob BBCode im Text bereits umgewandelt werden soll.                                                                                                                                                                                                                                                                 
    1685                 :          * @return string Kommentar                                                                                                                                                                                                                                                                                                                           
    1686                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1687                 :         function getChangeRequestComment($bbcode = true) {                                                                                                                                                                                                                                                                                                    
    1688               0 :             if ($bbcode) {                                                                                                                                                                                                                                                                                                                                    
    1689               0 :                 $bb = new BBCode();                                                                                                                                                                                                                                                                                                                           
    1690               0 :                 return $bb->parse($this->changeRequestComment);                                                                                                                                                                                                                                                                                               
    1691                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1692               0 :             return $this->changeRequestComment;                                                                                                                                                                                                                                                                                                               
    1693                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1694                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1695                 :          * Gibt den Kommentar zum Akzeptiert-Status dieses Dokuments zurück.                                                                                                                                                                                                                                                                                 
    1696                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1697                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1698                 :          * @param boolean $bbcode Gibt an, ob BBCode im Text bereits umgewandelt werden soll.                                                                                                                                                                                                                                                                 
    1699                 :          * @return string Kommentar                                                                                                                                                                                                                                                                                                                           
    1700                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1701                 :         function getAcceptedComment($bbcode = true) {                                                                                                                                                                                                                                                                                                         
    1702               0 :             if ($bbcode) {                                                                                                                                                                                                                                                                                                                                    
    1703               0 :                 $bb = new BBCode();                                                                                                                                                                                                                                                                                                                           
    1704               0 :                 return $bb->parse($this->acceptedComment);                                                                                                                                                                                                                                                                                                    
    1705                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1706               0 :             return $this->acceptedComment;                                                                                                                                                                                                                                                                                                                    
    1707                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1708                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1709                 :          * Gibt den Kommentar zum Überarbeitungs-Status dieses Dokuments zurück.                                                                                                                                                                                                                                                                            
    1710                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1711                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1712                 :          * @param boolean $bbcode Gibt an, ob BBCode im Text bereits umgewandelt werden soll.                                                                                                                                                                                                                                                                 
    1713                 :          * @return string Kommentar                                                                                                                                                                                                                                                                                                                           
    1714                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1715                 :         function getReviseComment($bbcode = true) {                                                                                                                                                                                                                                                                                                           
    1716               0 :             if ($bbcode) {                                                                                                                                                                                                                                                                                                                                    
    1717               0 :                 $bb = new BBCode();                                                                                                                                                                                                                                                                                                                           
    1718               0 :                 return $bb->parse($this->reviseComment);                                                                                                                                                                                                                                                                                                      
    1719                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1720               0 :             return $this->reviseComment;                                                                                                                                                                                                                                                                                                                      
    1721                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1722                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1723                 :          * Gibt den Kommentar zum "In Bearbeitung"-Status dieses Dokuments zurück.                                                                                                                                                                                                                                                                           
    1724                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1725                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1726                 :          * @param boolean $bbcode Gibt an, ob BBCode im Text bereits umgewandelt werden soll.                                                                                                                                                                                                                                                                 
    1727                 :          * @return string Kommentar                                                                                                                                                                                                                                                                                                                           
    1728                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1729                 :         function getInProgressComment($bbcode = true) {                                                                                                                                                                                                                                                                                                       
    1730               0 :             if ($bbcode) {                                                                                                                                                                                                                                                                                                                                    
    1731               0 :                 $bb = new BBCode();                                                                                                                                                                                                                                                                                                                           
    1732               0 :                 return $bb->parse($this->inProgressComment);                                                                                                                                                                                                                                                                                                  
    1733                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1734               0 :             return $this->inProgressComment;                                                                                                                                                                                                                                                                                                                  
    1735                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1736                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1737                 :          * Gibt den Kommentar zum "Bereit zur Abnahme"-Status dieses Dokuments zurück.                                                                                                                                                                                                                                                                       
    1738                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1739                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1740                 :          * @param boolean $bbcode Gibt an, ob BBCode im Text bereits umgewandelt werden soll.                                                                                                                                                                                                                                                                 
    1741                 :          * @return string Kommentar                                                                                                                                                                                                                                                                                                                           
    1742                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1743                 :         function getReadyForApprovalComment($bbcode = true) {                                                                                                                                                                                                                                                                                                 
    1744               0 :             if ($bbcode) {                                                                                                                                                                                                                                                                                                                                    
    1745               0 :                 $bb = new BBCode();                                                                                                                                                                                                                                                                                                                           
    1746               0 :                 return $bb->parse($this->readyForApprovalComment);                                                                                                                                                                                                                                                                                            
    1747                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1748               0 :             return $this->readyForApprovalComment;                                                                                                                                                                                                                                                                                                            
    1749                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1750                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1751                 :          * Gibt den Kommentar zum Feedback Request dieses Dokuments zurück.                                                                                                                                                                                                                                                                                  
    1752                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1753                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1754                 :          * @param boolean $bbcode Gibt an, ob BBCode im Text bereits umgewandelt werden soll.                                                                                                                                                                                                                                                                 
    1755                 :          * @return string Kommentar                                                                                                                                                                                                                                                                                                                           
    1756                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1757                 :         function getFeedbackRequestComment($bbcode = true) {                                                                                                                                                                                                                                                                                                  
    1758               0 :             if ($bbcode) {                                                                                                                                                                                                                                                                                                                                    
    1759               0 :                 $bb = new BBCode();                                                                                                                                                                                                                                                                                                                           
    1760               0 :                 return $bb->parse($this->feedbackRequestComment);                                                                                                                                                                                                                                                                                             
    1761                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1762               0 :             return $this->feedbackRequestComment;                                                                                                                                                                                                                                                                                                             
    1763                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1764                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1765                 :          * Gibt den Namen, Rolle und Teamzugehörigkeit des Bearbeiters dieses Dokuments zurück.                                                                                                                                                                                                                                                             
    1766                 :          * Der Name ist verlinkt auf das Profil des Benutzers, die Rolle auf deren Eigenschaftenseite.                                                                                                                                                                                                                                                        
    1767                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1768                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1769                 :          * @return string HTML-String mit Angaben zum Bearbeiter                                                                                                                                                                                                                                                                                              
    1770                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1771                 :         function getEditor() {                                                                                                                                                                                                                                                                                                                                
    1772               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1773               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1774               0 :             $urm = new UserRoleManagement($this->courseID);                                                                                                                                                                                                                                                                                                   
    1775               0 :             $utm = new UserTeamManagement($this->courseID);                                                                                                                                                                                                                                                                                                   
    1776               0 :             $editor = "<a href='".PATH_TO_ROOT."user/homepage.php?user=$this->editorUserID'>".Data::toHTML($db->get_var("SELECT CONCAT(Nachname, ', ', Vorname) FROM {$dbp}user WHERE ID='$this->editorUserID'"), false) ."</a>";                                                                                                                             
    1777               0 :             $team = $utm->getTeamOfUser($this->editorUserID);                                                                                                                                                                                                                                                                                                 
    1778                 :         //    if (is_a($team, "Team")) {                                                                                                                                                                                                                                                                                                                      
    1779                 :         //        $editor.= " (".Data::toHTML($team->getName(), false) .")";                                                                                                                                                                                                                                                                                  
    1780                 :         //    }                                                                                                                                                                                                                                                                                                                                               
    1781               0 :             return $editor;                                                                                                                                                                                                                                                                                                                                   
    1782                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1783                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1784                 :          * Gibt die ID der zum Dokument gehörenden Datei zurück.                                                                                                                                                                                                                                                                                            
    1785                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1786                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1787                 :          * @return int Datei-ID des Ressourcenmanagers                                                                                                                                                                                                                                                                                                        
    1788                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1789                 :         function getFileID() {                                                                                                                                                                                                                                                                                                                                
    1790               0 :             return $this->fileID;                                                                                                                                                                                                                                                                                                                             
    1791                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1792                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1793                 :          * Gibt den Namen, Rolle und Teamzugehörigkeit des Reviewers dieses Dokuments zurück.                                                                                                                                                                                                                                                               
    1794                 :          * Der Name ist verlinkt auf das Profil des Benutzers, die Rolle auf deren Eigenschaftenseite.                                                                                                                                                                                                                                                        
    1795                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1796                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1797                 :          * @return string HTML-String mit Angaben zum Reviewer                                                                                                                                                                                                                                                                                                
    1798                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1799                 :         function getReviewer() {                                                                                                                                                                                                                                                                                                                              
    1800               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1801               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1802               0 :             $urm = new UserRoleManagement($this->courseID);                                                                                                                                                                                                                                                                                                   
    1803               0 :             $utm = new UserTeamManagement($this->courseID);                                                                                                                                                                                                                                                                                                   
    1804               0 :             $reviewer = "<a href='".PATH_TO_ROOT."user/homepage.php?user=$this->reviewerUserID'>".Data::toHTML($db->get_var("SELECT CONCAT(Nachname, ', ', Vorname) FROM {$dbp}user WHERE ID='$this->reviewerUserID'"), false) ."</a>";                                                                                                                       
    1805               0 :             $team = $utm->getTeamOfUser($this->editorUserID);                                                                                                                                                                                                                                                                                                 
    1806                 :          //   if (is_a($team, "Team")) {                                                                                                                                                                                                                                                                                                                      
    1807                 :          //       $reviewer.= " (".Data::toHTML($team->getName(), false) .")";                                                                                                                                                                                                                                                                                
    1808                 :          //   }                                                                                                                                                                                                                                                                                                                                               
    1809               0 :             return $reviewer;                                                                                                                                                                                                                                                                                                                                 
    1810                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1811                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1812                 :          * Gibt die User-ID des Reviewers dieses Dokuments zurück.                                                                                                                                                                                                                                                                                           
    1813                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1814                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1815                 :          * @return int User-ID des Reviewers                                                                                                                                                                                                                                                                                                                  
    1816                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1817                 :         function getReviewerUserID() {                                                                                                                                                                                                                                                                                                                        
    1818               0 :             return $this->reviewerUserID;                                                                                                                                                                                                                                                                                                                     
    1819                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1820                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1821                 :          * Gibt die User-ID des Bearbeiters dieses Dokuments zurück.                                                                                                                                                                                                                                                                                         
    1822                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1823                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1824                 :          * @return int User-ID des Bearbeiters                                                                                                                                                                                                                                                                                                                
    1825                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1826                 :         function getEditorUserID() {                                                                                                                                                                                                                                                                                                                          
    1827               0 :             return $this->editorUserID;                                                                                                                                                                                                                                                                                                                       
    1828                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1829                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1830                 :          * Gibt den Typnamen dieses Dokuments zurück.                                                                                                                                                                                                                                                                                                        
    1831                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1832                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1833                 :          * @return string Typname des Dokuments                                                                                                                                                                                                                                                                                                               
    1834                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1835                 :         function getTypeName() {                                                                                                                                                                                                                                                                                                                              
    1836               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1837               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1838               0 :             return strval($db->get_var("SELECT name FROM {$dbp}planspiel_doc_type WHERE id='$this->type'"));                                                                                                                                                                                                                                                  
    1839                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1840                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1841                 :          * Gibt den Vorlagen-Namen dieses Dokuments zurück.                                                                                                                                                                                                                                                                                                  
    1842                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1843                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1844                 :          * @return string Vorlagen-Name des Dokuments                                                                                                                                                                                                                                                                                                         
    1845                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1846                 :         function getTemplateName() {                                                                                                                                                                                                                                                                                                                          
    1847               0 :             global $db, $settings;                                                                                                                                                                                                                                                                                                                            
    1848               0 :             $dbp = $settings["dbPrefix"];                                                                                                                                                                                                                                                                                                                     
    1849               0 :             return strval($db->get_var("SELECT name FROM {$dbp}filelist WHERE fileID='$this->templateID'"));                                                                                                                                                                                                                                                  
    1850                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1851                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1852                 :          * Gibt den Status dieses Dokuments als String zurück.                                                                                                                                                                                                                                                                                               
    1853                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1854                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1855                 :          * @return string Status des Dokuments                                                                                                                                                                                                                                                                                                                
    1856                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1857                 :         function getStatusText() {                                                                                                                                                                                                                                                                                                                            
    1858               0 :             $max = max($this->inProgressSince, $this->readyForApprovalSince, $this->feedbackRequestSince, $this->acceptedSince, $this->reviseTS, $this->changeRequestSince);                                                                                                                                                                                  
    1859               0 :             if ($max == 0) {                                                                                                                                                                                                                                                                                                                                  
    1860               0 :                 return "Noch nicht begonnen";                                                                                                                                                                                                                                                                                                                 
    1861               0 :             } elseif ($this->inProgressSince == $max) {                                                                                                                                                                                                                                                                                                       
    1862               0 :                 return "In Bearbeitung";                                                                                                                                                                                                                                                                                                                      
    1863               0 :             } elseif ($this->readyForApprovalSince == $max) {                                                                                                                                                                                                                                                                                                 
    1864               0 :                 return "Bereit zur Abnahme";                                                                                                                                                                                                                                                                                                                  
    1865               0 :             } elseif ($this->feedbackRequestSince == $max) {                                                                                                                                                                                                                                                                                                  
    1866               0 :                 return "Feedback erwünscht";                                                                                                                                                                                                                                                                                                                 
    1867               0 :             } elseif ($this->acceptedSince == $max) {                                                                                                                                                                                                                                                                                                         
    1868               0 :                 return "Akzeptiert";                                                                                                                                                                                                                                                                                                                          
    1869               0 :             } elseif ($this->reviseTS == $max) {                                                                                                                                                                                                                                                                                                              
    1870               0 :                 return "Überarbeitung erwünscht";                                                                                                                                                                                                                                                                                                           
    1871               0 :             } elseif ($this->changeRequestSince == $max) {                                                                                                                                                                                                                                                                                                    
    1872               0 :                 return "Change Request";                                                                                                                                                                                                                                                                                                                      
    1873                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1874               0 :         }                                                                                                                                                                                                                                                                                                                                                     
    1875                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1876                 :          * Gibt den geschätzten Aufwand in PT zurück.                                                                                                                                                                                                                                                                                                       
    1877                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1878                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1879                 :          * @return float Personentage                                                                                                                                                                                                                                                                                                                         
    1880                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1881                 :         function getEstimatedEffort() {                                                                                                                                                                                                                                                                                                                       
    1882               0 :             return number_format($this->estimatedEffort, 2);                                                                                                                                                                                                                                                                                                  
    1883                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1884                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1885                 :          * Gibt die bisher aufgewendeten PT zurück.                                                                                                                                                                                                                                                                                                          
    1886                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1887                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1888                 :          * @return float Personentage                                                                                                                                                                                                                                                                                                                         
    1889                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1890                 :         function getDaysSpent() {                                                                                                                                                                                                                                                                                                                             
    1891               0 :             return number_format($this->daysSpent, 2);                                                                                                                                                                                                                                                                                                        
    1892                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1893                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1894                 :          * Gibt die ETC in PT zurück.                                                                                                                                                                                                                                                                                                                        
    1895                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1896                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1897                 :          * @return float Personentage                                                                                                                                                                                                                                                                                                                         
    1898                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1899                 :         function getETC() {                                                                                                                                                                                                                                                                                                                                   
    1900               0 :             return number_format($this->etc, 2);                                                                                                                                                                                                                                                                                                              
    1901                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1902                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1903                 :          * Gibt zurück, ob die Bearbeitung dieses Dokuments abgeschlossen ist.                                                                                                                                                                                                                                                                               
    1904                 :          * Das ist der Fall, sobald das Dokument als akzeptiert markiert wurde.                                                                                                                                                                                                                                                                               
    1905                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1906                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1907                 :          * @return boolean true, wenn das Dokument akzeptiert wurde, sonst false                                                                                                                                                                                                                                                                              
    1908                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1909                 :         function isFinished() {                                                                                                                                                                                                                                                                                                                               
    1910               0 :             return $this->acceptedSince > 0;                                                                                                                                                                                                                                                                                                                  
    1911                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1912                 :         /**                                                                                                                                                                                                                                                                                                                                                   
    1913                 :          * Gibt einen Link zum Download der zum Dokument gehörenden Datei aus, wenn diese                                                                                                                                                                                                                                                                    
    1914                 :          * vorhanden ist, sonst nur den Namen des Dokuments.                                                                                                                                                                                                                                                                                                  
    1915                 :          *                                                                                                                                                                                                                                                                                                                                                    
    1916                 :          * @access public                                                                                                                                                                                                                                                                                                                                     
    1917                 :          * @return string Download-Link zur Datei                                                                                                                                                                                                                                                                                                             
    1918                 :          */                                                                                                                                                                                                                                                                                                                                                   
    1919                 :         function getLinkToFile() {                                                                                                                                                                                                                                                                                                                            
    1920               0 :             if ($this->fileID > 0) {                                                                                                                                                                                                                                                                                                                          
    1921               0 :                 return "<a href='".PATH_TO_ROOT."ressourcen/filemanager.php?activeFolder=$this->folderID&amp;action=getfile&amp;actionID=$this->fileID' title='Datei herunterladen'>".Data::toHTML($this->name, false) ."</a>";                                                                                                                               
    1922                 :             }                                                                                                                                                                                                                                                                                                                                                 
    1923               0 :             return Data::toHTML($this->name, false);                                                                                                                                                                                                                                                                                                          
    1924                 :         }                                                                                                                                                                                                                                                                                                                                                     
    1925                 :     }                                                                                                                                                                                                                                                                                                                                                         

Generated by PHPUnit 3.2.21 and Xdebug 2.0.4 at Sat Nov 7 22:04:08 CET 2009.